

<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="./">
<head>
  <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />

  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>pymatgen.phonon package &mdash; pymatgen 2025.6.14 documentation</title>
      <link rel="stylesheet" type="text/css" href="assets/pygments.css?v=03e43079" />
      <link rel="stylesheet" type="text/css" href="assets/css/theme.css?v=e59714d7" />
      <link rel="stylesheet" type="text/css" href="assets/css/custom.css" />

  
    <link rel="canonical" href="https://pymatgen.orgpymatgen.phonon.html"/>
      <script src="assets/jquery.js?v=5d32c60e"></script>
      <script src="assets/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
      <script src="assets/documentation_options.js?v=03bec786"></script>
      <script src="assets/doctools.js?v=9bcbadda"></script>
      <script src="assets/sphinx_highlight.js?v=dc90522c"></script>
    <script src="assets/js/theme.js"></script>
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="search.html" /> 
</head>

<body class="wy-body-for-nav"> 
  <div class="wy-grid-for-nav">
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search"  style="background: linear-gradient(0deg, rgba(23,63,162,1) 0%, rgba(0,70,192,1) 100%)" >

          
          
          <a href="index.html">
            
          </a>
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>
        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
              <!-- Local TOC -->
              <div class="local-toc"><ul>
<li><a class="reference internal" href="#">pymatgen.phonon package</a><ul>
<li><a class="reference internal" href="#submodules">Submodules</a></li>
<li><a class="reference internal" href="#module-pymatgen.phonon.bandstructure">pymatgen.phonon.bandstructure module</a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructure"><code class="docutils literal notranslate"><span class="pre">PhononBandStructure</span></code></a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructure.as_dict"><code class="docutils literal notranslate"><span class="pre">PhononBandStructure.as_dict()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructure.asr_breaking"><code class="docutils literal notranslate"><span class="pre">PhononBandStructure.asr_breaking()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructure.from_dict"><code class="docutils literal notranslate"><span class="pre">PhononBandStructure.from_dict()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructure.get_gamma_point"><code class="docutils literal notranslate"><span class="pre">PhononBandStructure.get_gamma_point()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructure.get_nac_eigendisplacements_along_dir"><code class="docutils literal notranslate"><span class="pre">PhononBandStructure.get_nac_eigendisplacements_along_dir()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructure.get_nac_frequencies_along_dir"><code class="docutils literal notranslate"><span class="pre">PhononBandStructure.get_nac_frequencies_along_dir()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructure.has_eigendisplacements"><code class="docutils literal notranslate"><span class="pre">PhononBandStructure.has_eigendisplacements</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructure.has_imaginary_freq"><code class="docutils literal notranslate"><span class="pre">PhononBandStructure.has_imaginary_freq()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructure.has_imaginary_gamma_freq"><code class="docutils literal notranslate"><span class="pre">PhononBandStructure.has_imaginary_gamma_freq()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructure.has_nac"><code class="docutils literal notranslate"><span class="pre">PhononBandStructure.has_nac</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructure.max_freq"><code class="docutils literal notranslate"><span class="pre">PhononBandStructure.max_freq()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructure.min_freq"><code class="docutils literal notranslate"><span class="pre">PhononBandStructure.min_freq()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructure.width"><code class="docutils literal notranslate"><span class="pre">PhononBandStructure.width()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructureSymmLine"><code class="docutils literal notranslate"><span class="pre">PhononBandStructureSymmLine</span></code></a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructureSymmLine.as_dict"><code class="docutils literal notranslate"><span class="pre">PhononBandStructureSymmLine.as_dict()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructureSymmLine.as_phononwebsite"><code class="docutils literal notranslate"><span class="pre">PhononBandStructureSymmLine.as_phononwebsite()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructureSymmLine.band_reorder"><code class="docutils literal notranslate"><span class="pre">PhononBandStructureSymmLine.band_reorder()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructureSymmLine.from_dict"><code class="docutils literal notranslate"><span class="pre">PhononBandStructureSymmLine.from_dict()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructureSymmLine.get_branch"><code class="docutils literal notranslate"><span class="pre">PhononBandStructureSymmLine.get_branch()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructureSymmLine.get_equivalent_qpoints"><code class="docutils literal notranslate"><span class="pre">PhononBandStructureSymmLine.get_equivalent_qpoints()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructureSymmLine.write_phononwebsite"><code class="docutils literal notranslate"><span class="pre">PhononBandStructureSymmLine.write_phononwebsite()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.eigenvectors_from_displacements"><code class="docutils literal notranslate"><span class="pre">eigenvectors_from_displacements()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.estimate_band_connection"><code class="docutils literal notranslate"><span class="pre">estimate_band_connection()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.bandstructure.get_reasonable_repetitions"><code class="docutils literal notranslate"><span class="pre">get_reasonable_repetitions()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#module-pymatgen.phonon.dos">pymatgen.phonon.dos module</a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.dos.CompletePhononDos"><code class="docutils literal notranslate"><span class="pre">CompletePhononDos</span></code></a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.dos.CompletePhononDos.pdos"><code class="docutils literal notranslate"><span class="pre">CompletePhononDos.pdos</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.CompletePhononDos.as_dict"><code class="docutils literal notranslate"><span class="pre">CompletePhononDos.as_dict()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.CompletePhononDos.from_dict"><code class="docutils literal notranslate"><span class="pre">CompletePhononDos.from_dict()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.CompletePhononDos.get_element_dos"><code class="docutils literal notranslate"><span class="pre">CompletePhononDos.get_element_dos()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.CompletePhononDos.get_site_dos"><code class="docutils literal notranslate"><span class="pre">CompletePhononDos.get_site_dos()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos"><code class="docutils literal notranslate"><span class="pre">PhononDos</span></code></a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos.as_dict"><code class="docutils literal notranslate"><span class="pre">PhononDos.as_dict()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos.cv"><code class="docutils literal notranslate"><span class="pre">PhononDos.cv()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos.entropy"><code class="docutils literal notranslate"><span class="pre">PhononDos.entropy()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos.fp_to_dict"><code class="docutils literal notranslate"><span class="pre">PhononDos.fp_to_dict()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos.from_dict"><code class="docutils literal notranslate"><span class="pre">PhononDos.from_dict()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos.get_dos_fp"><code class="docutils literal notranslate"><span class="pre">PhononDos.get_dos_fp()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos.get_dos_fp_similarity"><code class="docutils literal notranslate"><span class="pre">PhononDos.get_dos_fp_similarity()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos.get_interpolated_value"><code class="docutils literal notranslate"><span class="pre">PhononDos.get_interpolated_value()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos.get_last_peak"><code class="docutils literal notranslate"><span class="pre">PhononDos.get_last_peak()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos.get_smeared_densities"><code class="docutils literal notranslate"><span class="pre">PhononDos.get_smeared_densities()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos.helmholtz_free_energy"><code class="docutils literal notranslate"><span class="pre">PhononDos.helmholtz_free_energy()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos.ind_zero_freq"><code class="docutils literal notranslate"><span class="pre">PhononDos.ind_zero_freq()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos.internal_energy"><code class="docutils literal notranslate"><span class="pre">PhononDos.internal_energy()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos.mae"><code class="docutils literal notranslate"><span class="pre">PhononDos.mae()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos.r2_score"><code class="docutils literal notranslate"><span class="pre">PhononDos.r2_score()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos.zero_point_energy"><code class="docutils literal notranslate"><span class="pre">PhononDos.zero_point_energy()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDosFingerprint"><code class="docutils literal notranslate"><span class="pre">PhononDosFingerprint</span></code></a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDosFingerprint.bin_width"><code class="docutils literal notranslate"><span class="pre">PhononDosFingerprint.bin_width</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDosFingerprint.densities"><code class="docutils literal notranslate"><span class="pre">PhononDosFingerprint.densities</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDosFingerprint.frequencies"><code class="docutils literal notranslate"><span class="pre">PhononDosFingerprint.frequencies</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.dos.PhononDosFingerprint.n_bins"><code class="docutils literal notranslate"><span class="pre">PhononDosFingerprint.n_bins</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li><a class="reference internal" href="#module-pymatgen.phonon.gruneisen">pymatgen.phonon.gruneisen module</a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.gruneisen.GruneisenParameter"><code class="docutils literal notranslate"><span class="pre">GruneisenParameter</span></code></a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.gruneisen.GruneisenParameter.acoustic_debye_temp"><code class="docutils literal notranslate"><span class="pre">GruneisenParameter.acoustic_debye_temp</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.gruneisen.GruneisenParameter.average_gruneisen"><code class="docutils literal notranslate"><span class="pre">GruneisenParameter.average_gruneisen()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.gruneisen.GruneisenParameter.debye_temp_limit"><code class="docutils literal notranslate"><span class="pre">GruneisenParameter.debye_temp_limit</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.gruneisen.GruneisenParameter.debye_temp_phonopy"><code class="docutils literal notranslate"><span class="pre">GruneisenParameter.debye_temp_phonopy()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.gruneisen.GruneisenParameter.phdos"><code class="docutils literal notranslate"><span class="pre">GruneisenParameter.phdos</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.gruneisen.GruneisenParameter.tdos"><code class="docutils literal notranslate"><span class="pre">GruneisenParameter.tdos</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.gruneisen.GruneisenParameter.thermal_conductivity_slack"><code class="docutils literal notranslate"><span class="pre">GruneisenParameter.thermal_conductivity_slack()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#pymatgen.phonon.gruneisen.GruneisenPhononBandStructure"><code class="docutils literal notranslate"><span class="pre">GruneisenPhononBandStructure</span></code></a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.gruneisen.GruneisenPhononBandStructure.as_dict"><code class="docutils literal notranslate"><span class="pre">GruneisenPhononBandStructure.as_dict()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.gruneisen.GruneisenPhononBandStructure.from_dict"><code class="docutils literal notranslate"><span class="pre">GruneisenPhononBandStructure.from_dict()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#pymatgen.phonon.gruneisen.GruneisenPhononBandStructureSymmLine"><code class="docutils literal notranslate"><span class="pre">GruneisenPhononBandStructureSymmLine</span></code></a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.gruneisen.GruneisenPhononBandStructureSymmLine.from_dict"><code class="docutils literal notranslate"><span class="pre">GruneisenPhononBandStructureSymmLine.from_dict()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li><a class="reference internal" href="#module-pymatgen.phonon.ir_spectra">pymatgen.phonon.ir_spectra module</a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.ir_spectra.IRDielectricTensor"><code class="docutils literal notranslate"><span class="pre">IRDielectricTensor</span></code></a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.ir_spectra.IRDielectricTensor.as_dict"><code class="docutils literal notranslate"><span class="pre">IRDielectricTensor.as_dict()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.ir_spectra.IRDielectricTensor.from_dict"><code class="docutils literal notranslate"><span class="pre">IRDielectricTensor.from_dict()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.ir_spectra.IRDielectricTensor.get_ir_spectra"><code class="docutils literal notranslate"><span class="pre">IRDielectricTensor.get_ir_spectra()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.ir_spectra.IRDielectricTensor.get_plotter"><code class="docutils literal notranslate"><span class="pre">IRDielectricTensor.get_plotter()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.ir_spectra.IRDielectricTensor.get_spectrum"><code class="docutils literal notranslate"><span class="pre">IRDielectricTensor.get_spectrum()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.ir_spectra.IRDielectricTensor.max_phfreq"><code class="docutils literal notranslate"><span class="pre">IRDielectricTensor.max_phfreq</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.ir_spectra.IRDielectricTensor.nph_freqs"><code class="docutils literal notranslate"><span class="pre">IRDielectricTensor.nph_freqs</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.ir_spectra.IRDielectricTensor.plot"><code class="docutils literal notranslate"><span class="pre">IRDielectricTensor.plot()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.ir_spectra.IRDielectricTensor.write_json"><code class="docutils literal notranslate"><span class="pre">IRDielectricTensor.write_json()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li><a class="reference internal" href="#module-pymatgen.phonon.plotter">pymatgen.phonon.plotter module</a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.FreqUnits"><code class="docutils literal notranslate"><span class="pre">FreqUnits</span></code></a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.FreqUnits.factor"><code class="docutils literal notranslate"><span class="pre">FreqUnits.factor</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.FreqUnits.label"><code class="docutils literal notranslate"><span class="pre">FreqUnits.label</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.GruneisenPhononBSPlotter"><code class="docutils literal notranslate"><span class="pre">GruneisenPhononBSPlotter</span></code></a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.GruneisenPhononBSPlotter.bs_plot_data"><code class="docutils literal notranslate"><span class="pre">GruneisenPhononBSPlotter.bs_plot_data()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.GruneisenPhononBSPlotter.get_plot_gs"><code class="docutils literal notranslate"><span class="pre">GruneisenPhononBSPlotter.get_plot_gs()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.GruneisenPhononBSPlotter.plot_compare_gs"><code class="docutils literal notranslate"><span class="pre">GruneisenPhononBSPlotter.plot_compare_gs()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.GruneisenPhononBSPlotter.save_plot_gs"><code class="docutils literal notranslate"><span class="pre">GruneisenPhononBSPlotter.save_plot_gs()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.GruneisenPhononBSPlotter.show_gs"><code class="docutils literal notranslate"><span class="pre">GruneisenPhononBSPlotter.show_gs()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.GruneisenPlotter"><code class="docutils literal notranslate"><span class="pre">GruneisenPlotter</span></code></a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.GruneisenPlotter.get_plot"><code class="docutils literal notranslate"><span class="pre">GruneisenPlotter.get_plot()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.GruneisenPlotter.save_plot"><code class="docutils literal notranslate"><span class="pre">GruneisenPlotter.save_plot()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.GruneisenPlotter.show"><code class="docutils literal notranslate"><span class="pre">GruneisenPlotter.show()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.PhononBSPlotter"><code class="docutils literal notranslate"><span class="pre">PhononBSPlotter</span></code></a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.PhononBSPlotter.bs_plot_data"><code class="docutils literal notranslate"><span class="pre">PhononBSPlotter.bs_plot_data()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.PhononBSPlotter.get_plot"><code class="docutils literal notranslate"><span class="pre">PhononBSPlotter.get_plot()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.PhononBSPlotter.get_proj_plot"><code class="docutils literal notranslate"><span class="pre">PhononBSPlotter.get_proj_plot()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.PhononBSPlotter.get_ticks"><code class="docutils literal notranslate"><span class="pre">PhononBSPlotter.get_ticks()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.PhononBSPlotter.n_bands"><code class="docutils literal notranslate"><span class="pre">PhononBSPlotter.n_bands</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.PhononBSPlotter.plot_brillouin"><code class="docutils literal notranslate"><span class="pre">PhononBSPlotter.plot_brillouin()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.PhononBSPlotter.plot_compare"><code class="docutils literal notranslate"><span class="pre">PhononBSPlotter.plot_compare()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.PhononBSPlotter.save_plot"><code class="docutils literal notranslate"><span class="pre">PhononBSPlotter.save_plot()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.PhononBSPlotter.show"><code class="docutils literal notranslate"><span class="pre">PhononBSPlotter.show()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.PhononBSPlotter.show_proj"><code class="docutils literal notranslate"><span class="pre">PhononBSPlotter.show_proj()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.PhononDosPlotter"><code class="docutils literal notranslate"><span class="pre">PhononDosPlotter</span></code></a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.PhononDosPlotter.add_dos"><code class="docutils literal notranslate"><span class="pre">PhononDosPlotter.add_dos()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.PhononDosPlotter.add_dos_dict"><code class="docutils literal notranslate"><span class="pre">PhononDosPlotter.add_dos_dict()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.PhononDosPlotter.get_dos_dict"><code class="docutils literal notranslate"><span class="pre">PhononDosPlotter.get_dos_dict()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.PhononDosPlotter.get_plot"><code class="docutils literal notranslate"><span class="pre">PhononDosPlotter.get_plot()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.PhononDosPlotter.save_plot"><code class="docutils literal notranslate"><span class="pre">PhononDosPlotter.save_plot()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.PhononDosPlotter.show"><code class="docutils literal notranslate"><span class="pre">PhononDosPlotter.show()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.ThermoPlotter"><code class="docutils literal notranslate"><span class="pre">ThermoPlotter</span></code></a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.ThermoPlotter.plot_cv"><code class="docutils literal notranslate"><span class="pre">ThermoPlotter.plot_cv()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.ThermoPlotter.plot_entropy"><code class="docutils literal notranslate"><span class="pre">ThermoPlotter.plot_entropy()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.ThermoPlotter.plot_helmholtz_free_energy"><code class="docutils literal notranslate"><span class="pre">ThermoPlotter.plot_helmholtz_free_energy()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.ThermoPlotter.plot_internal_energy"><code class="docutils literal notranslate"><span class="pre">ThermoPlotter.plot_internal_energy()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.ThermoPlotter.plot_thermodynamic_properties"><code class="docutils literal notranslate"><span class="pre">ThermoPlotter.plot_thermodynamic_properties()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#pymatgen.phonon.plotter.freq_units"><code class="docutils literal notranslate"><span class="pre">freq_units()</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#module-pymatgen.phonon.thermal_displacements">pymatgen.phonon.thermal_displacements module</a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices"><code class="docutils literal notranslate"><span class="pre">ThermalDisplacementMatrices</span></code></a><ul>
<li><a class="reference internal" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.B"><code class="docutils literal notranslate"><span class="pre">ThermalDisplacementMatrices.B</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.U1U2U3"><code class="docutils literal notranslate"><span class="pre">ThermalDisplacementMatrices.U1U2U3</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.Ucif"><code class="docutils literal notranslate"><span class="pre">ThermalDisplacementMatrices.Ucif</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.Ustar"><code class="docutils literal notranslate"><span class="pre">ThermalDisplacementMatrices.Ustar</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.beta"><code class="docutils literal notranslate"><span class="pre">ThermalDisplacementMatrices.beta</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.compute_directionality_quality_criterion"><code class="docutils literal notranslate"><span class="pre">ThermalDisplacementMatrices.compute_directionality_quality_criterion()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.from_Ucif"><code class="docutils literal notranslate"><span class="pre">ThermalDisplacementMatrices.from_Ucif()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.from_cif_P1"><code class="docutils literal notranslate"><span class="pre">ThermalDisplacementMatrices.from_cif_P1()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.from_structure_with_site_properties_Ucif"><code class="docutils literal notranslate"><span class="pre">ThermalDisplacementMatrices.from_structure_with_site_properties_Ucif()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.get_full_matrix"><code class="docutils literal notranslate"><span class="pre">ThermalDisplacementMatrices.get_full_matrix()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.get_reduced_matrix"><code class="docutils literal notranslate"><span class="pre">ThermalDisplacementMatrices.get_reduced_matrix()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.ratio_prolate"><code class="docutils literal notranslate"><span class="pre">ThermalDisplacementMatrices.ratio_prolate</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.to_structure_with_site_properties_Ucif"><code class="docutils literal notranslate"><span class="pre">ThermalDisplacementMatrices.to_structure_with_site_properties_Ucif()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.visualize_directionality_quality_criterion"><code class="docutils literal notranslate"><span class="pre">ThermalDisplacementMatrices.visualize_directionality_quality_criterion()</span></code></a></li>
<li><a class="reference internal" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.write_cif"><code class="docutils literal notranslate"><span class="pre">ThermalDisplacementMatrices.write_cif()</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu"  style="background: linear-gradient(0deg, rgba(23,63,162,1) 0%, rgba(0,70,192,1) 100%)" >
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="index.html">pymatgen</a>
      </nav>

      <div class="wy-nav-content">
        <div class="rst-content style-external-links">
          <div role="navigation" aria-label="Page navigation">
  <ul class="wy-breadcrumbs">
      <li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
      <li class="breadcrumb-item active">pymatgen.phonon package</li>
      <li class="wy-breadcrumbs-aside">
              <a href="https://github.com/materialsproject/pymatgen/blob/master/docs_rst/pymatgen.phonon.rst" class="fa fa-github"> Edit on GitHub</a>
      </li>
  </ul>
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
             
  <section id="module-pymatgen.phonon">
<span id="pymatgen-phonon-package"></span><h1>pymatgen.phonon package<a class="headerlink" href="#module-pymatgen.phonon" title="Link to this heading"></a></h1>
<p>pymatgen phonon package with functionality for phonon DOS + bandstructure analysis and more.</p>
<section id="submodules">
<h2>Submodules<a class="headerlink" href="#submodules" title="Link to this heading"></a></h2>
</section>
<section id="module-pymatgen.phonon.bandstructure">
<span id="pymatgen-phonon-bandstructure-module"></span><h2>pymatgen.phonon.bandstructure module<a class="headerlink" href="#module-pymatgen.phonon.bandstructure" title="Link to this heading"></a></h2>
<p>This module provides classes to define a phonon band structure.</p>
<dl class="py class">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructure">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PhononBandStructure</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">qpoints</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">frequencies</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lattice</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.lattice.Lattice" title="pymatgen.core.lattice.Lattice"><span class="pre">Lattice</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">nac_frequencies</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">eigendisplacements</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">nac_eigendisplacements</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">labels_dict</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference internal" href="pymatgen.electronic_structure.html#pymatgen.electronic_structure.bandstructure.Kpoint" title="pymatgen.electronic_structure.bandstructure.Kpoint"><span class="pre">Kpoint</span></a><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">coords_are_cartesian</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">structure</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.structure.Structure" title="pymatgen.core.structure.Structure"><span class="pre">Structure</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L62-L352"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructure" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">MSONable</span></code></p>
<p>This is the most generic phonon band structure data possible
it’s defined by a list of qpoints + frequencies for each of them.
Additional information may be given for frequencies at Gamma, where
non-analytical contribution may be taken into account.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>qpoints</strong> – list of qpoint as numpy arrays, in frac_coords of the
given lattice by default</p></li>
<li><p><strong>frequencies</strong> – list of phonon frequencies in THz as a numpy array with shape
(3*len(structure), len(qpoints)). The First index of the array
refers to the band and the second to the index of the qpoint.</p></li>
<li><p><strong>lattice</strong> – The reciprocal lattice as a pymatgen Lattice object.
Pymatgen uses the physics convention of reciprocal lattice vectors
WITH a 2*pi coefficient.</p></li>
<li><p><strong>nac_frequencies</strong> – Frequencies with non-analytical contributions at Gamma in THz.
A list of tuples. The first element of each tuple should be a list
defining the direction (not necessarily a versor, will be normalized
internally). The second element containing the 3*len(structure)
phonon frequencies with non-analytical correction for that direction.</p></li>
<li><p><strong>eigendisplacements</strong> – the phonon eigendisplacements associated to the
frequencies in Cartesian coordinates. A numpy array of complex
numbers with shape (3*len(structure), len(qpoints), len(structure), 3).
The first index of the array refers to the band, the second to the index
of the qpoint, the third to the atom in the structure and the fourth
to the Cartesian coordinates.</p></li>
<li><p><strong>nac_eigendisplacements</strong> – the phonon eigendisplacements associated to the
non-analytical frequencies in nac_frequencies in Cartesian coordinates.
A list of tuples. The first element of each tuple should be a list
defining the direction. The second element containing a numpy array of
complex numbers with shape (3*len(structure), len(structure), 3).</p></li>
<li><p><strong>labels_dict</strong> – (dict[str, Kpoint]): this links a qpoint (in frac coords or
Cartesian coordinates depending on the coords) to a label.</p></li>
<li><p><strong>coords_are_cartesian</strong> (<em>bool</em>) – Whether the qpoint coordinates are Cartesian. Defaults to False.</p></li>
<li><p><strong>structure</strong> – The crystal structure (as a pymatgen Structure object)
associated with the band structure. This is needed to calculate element/orbital
projections of the band structure.</p></li>
</ul>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructure.as_dict">
<span class="sig-name descname"><span class="pre">as_dict</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L293-L322"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructure.as_dict" title="Link to this definition"></a></dt>
<dd><p>MSONable dict.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructure.asr_breaking">
<span class="sig-name descname"><span class="pre">asr_breaking</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">tol_eigendisplacements</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">1e-05</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">ndarray</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L266-L291"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructure.asr_breaking" title="Link to this definition"></a></dt>
<dd><p>Get the breaking of the acoustic sum rule for the three acoustic modes,
if Gamma is present. None otherwise.
If eigendisplacements are available they are used to determine the acoustic
modes: selects the bands corresponding to the eigendisplacements that
represent to a translation within tol_eigendisplacements. If these are not
identified or eigendisplacements are missing the first 3 modes will be used
(indices [:3]).</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructure.from_dict">
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_dict</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">dct</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Self</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L324-L352"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructure.from_dict" title="Link to this definition"></a></dt>
<dd><dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>dct</strong> (<em>dict</em>) – Dict representation of PhononBandStructure.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>PhononBandStructure</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructure.get_gamma_point">
<span class="sig-name descname"><span class="pre">get_gamma_point</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference internal" href="pymatgen.electronic_structure.html#pymatgen.electronic_structure.bandstructure.Kpoint" title="pymatgen.electronic_structure.bandstructure.Kpoint"><span class="pre">Kpoint</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L162-L168"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructure.get_gamma_point" title="Link to this definition"></a></dt>
<dd><p>Get the Gamma q-point as a Kpoint object (or None if not found).</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructure.get_nac_eigendisplacements_along_dir">
<span class="sig-name descname"><span class="pre">get_nac_eigendisplacements_along_dir</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">direction</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">ndarray</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L248-L264"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructure.get_nac_eigendisplacements_along_dir" title="Link to this definition"></a></dt>
<dd><p>Get the nac_eigendisplacements for the given direction (not necessarily a versor).
None if the direction is not present or nac_eigendisplacements has not been calculated.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>direction</strong> – the direction as a list of 3 elements</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>the eigendisplacements as a numpy array of complex numbers with shape
(3*len(structure), len(structure), 3). None if not found.</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructure.get_nac_frequencies_along_dir">
<span class="sig-name descname"><span class="pre">get_nac_frequencies_along_dir</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">direction</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Sequence</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">np.ndarray</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L230-L246"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructure.get_nac_frequencies_along_dir" title="Link to this definition"></a></dt>
<dd><p>Get the nac_frequencies for the given direction (not necessarily a versor).
None if the direction is not present or nac_frequencies has not been calculated.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>direction</strong> – the direction as a list of 3 elements</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>the frequencies as a numpy array o(3*len(structure), len(qpoints)).
None if not found.</p>
</dd>
</dl>
</dd></dl>

<dl class="py property">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructure.has_eigendisplacements">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">has_eigendisplacements</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">bool</span></em><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/bandstructure.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructure.has_eigendisplacements" title="Link to this definition"></a></dt>
<dd><p>True if eigendisplacements are present.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructure.has_imaginary_freq">
<span class="sig-name descname"><span class="pre">has_imaginary_freq</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">tol</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">0.01</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L192-L199"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructure.has_imaginary_freq" title="Link to this definition"></a></dt>
<dd><p>True if imaginary frequencies are present anywhere in the band structure. Always True if
has_imaginary_gamma_freq is True.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>tol</strong> – Tolerance for determining if a frequency is imaginary. Defaults to 0.01.</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructure.has_imaginary_gamma_freq">
<span class="sig-name descname"><span class="pre">has_imaginary_gamma_freq</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">tol</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">0.01</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">bool</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L201-L216"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructure.has_imaginary_gamma_freq" title="Link to this definition"></a></dt>
<dd><p>Check if there are imaginary modes at the gamma point and all close points.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>tol</strong> – Tolerance for determining if a frequency is imaginary. Defaults to 0.01.</p>
</dd>
</dl>
</dd></dl>

<dl class="py property">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructure.has_nac">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">has_nac</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">bool</span></em><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/bandstructure.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructure.has_nac" title="Link to this definition"></a></dt>
<dd><p>True if nac_frequencies are present (i.e. the band structure has been
calculated taking into account Born-charge-derived non-analytical corrections at Gamma).</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructure.max_freq">
<span class="sig-name descname"><span class="pre">max_freq</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="pymatgen.electronic_structure.html#pymatgen.electronic_structure.bandstructure.Kpoint" title="pymatgen.electronic_structure.bandstructure.Kpoint"><span class="pre">Kpoint</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">float</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L176-L180"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructure.max_freq" title="Link to this definition"></a></dt>
<dd><p>Get the q-point where the maximum frequency is reached and its value.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructure.min_freq">
<span class="sig-name descname"><span class="pre">min_freq</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="pymatgen.electronic_structure.html#pymatgen.electronic_structure.bandstructure.Kpoint" title="pymatgen.electronic_structure.bandstructure.Kpoint"><span class="pre">Kpoint</span></a><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">float</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L170-L174"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructure.min_freq" title="Link to this definition"></a></dt>
<dd><p>Get the q-point where the minimum frequency is reached and its value.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructure.width">
<span class="sig-name descname"><span class="pre">width</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">with_imaginary</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L182-L190"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructure.width" title="Link to this definition"></a></dt>
<dd><p>Get the difference between the maximum and minimum frequencies anywhere in the
band structure, not necessarily at identical same q-points. If with_imaginary is False,
only positive frequencies are considered.</p>
</dd></dl>

</dd></dl>

<dl class="py class">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructureSymmLine">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PhononBandStructureSymmLine</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">qpoints</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">frequencies</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lattice</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.lattice.Lattice" title="pymatgen.core.lattice.Lattice"><span class="pre">Lattice</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">has_nac</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">eigendisplacements</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">labels_dict</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">coords_are_cartesian</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">structure</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.structure.Structure" title="pymatgen.core.structure.Structure"><span class="pre">Structure</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L355-L684"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructureSymmLine" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructure" title="pymatgen.phonon.bandstructure.PhononBandStructure"><code class="xref py py-class docutils literal notranslate"><span class="pre">PhononBandStructure</span></code></a></p>
<p>Store phonon band structures along selected (symmetry) lines in the Brillouin zone.
We call the different symmetry lines (ex: \Gamma to Z) “branches”.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>qpoints</strong> – list of qpoints as numpy arrays, in frac_coords of the
given lattice by default</p></li>
<li><p><strong>frequencies</strong> – list of phonon frequencies in eV as a numpy array with shape
(3*len(structure), len(qpoints))</p></li>
<li><p><strong>lattice</strong> – The reciprocal lattice as a pymatgen Lattice object.
Pymatgen uses the physics convention of reciprocal lattice vectors
WITH a 2*pi coefficient</p></li>
<li><p><strong>has_nac</strong> – specify if the band structure has been produced taking into account
non-analytical corrections at Gamma. If True frequencies at Gamma from
different directions will be stored in naf. Default False.</p></li>
<li><p><strong>eigendisplacements</strong> – the phonon eigendisplacements associated to the
frequencies in Cartesian coordinates. A numpy array of complex
numbers with shape (3*len(structure), len(qpoints), len(structure), 3).
he First index of the array refers to the band, the second to the index
of the qpoint, the third to the atom in the structure and the fourth
to the Cartesian coordinates.</p></li>
<li><p><strong>labels_dict</strong> – (dict) of {} this links a qpoint (in frac coords or
Cartesian coordinates depending on the coords) to a label.</p></li>
<li><p><strong>coords_are_cartesian</strong> – Whether the qpoint coordinates are cartesian.</p></li>
<li><p><strong>structure</strong> – The crystal structure (as a pymatgen Structure object)
associated with the band structure. This is needed if we
provide projections to the band structure.</p></li>
</ul>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructureSymmLine.as_dict">
<span class="sig-name descname"><span class="pre">as_dict</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">dict</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L641-L649"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructureSymmLine.as_dict" title="Link to this definition"></a></dt>
<dd><p>Get MSONable dict.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructureSymmLine.as_phononwebsite">
<span class="sig-name descname"><span class="pre">as_phononwebsite</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">dict</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L532-L608"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructureSymmLine.as_phononwebsite" title="Link to this definition"></a></dt>
<dd><p>Return a dictionary with the phononwebsite format:
<a class="reference external" href="https://henriquemiranda.github.io/phononwebsite">https://henriquemiranda.github.io/phononwebsite</a>.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructureSymmLine.band_reorder">
<span class="sig-name descname"><span class="pre">band_reorder</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L610-L639"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructureSymmLine.band_reorder" title="Link to this definition"></a></dt>
<dd><p>Re-order the eigenvalues according to the similarity of the eigenvectors.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructureSymmLine.from_dict">
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_dict</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">dct</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Self</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L651-L672"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructureSymmLine.from_dict" title="Link to this definition"></a></dt>
<dd><dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>dct</strong> (<em>dict</em>) – Dict representation.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>PhononBandStructureSymmLine</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructureSymmLine.get_branch">
<span class="sig-name descname"><span class="pre">get_branch</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">index</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">int</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L499-L523"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructureSymmLine.get_branch" title="Link to this definition"></a></dt>
<dd><p>Get in what branch(es) is the qpoint. There can be several branches.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>index</strong> (<em>int</em>) – the qpoint index</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><dl class="simple">
<dt>[{“name”,”start_index”,”end_index”,”index”}]</dt><dd><p>indicating all branches in which the qpoint is. It takes into account
the fact that one qpoint (e.g., \Gamma) can be in several branches</p>
</dd>
</dl>
</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>list[dict[str, str | int]]</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructureSymmLine.get_equivalent_qpoints">
<span class="sig-name descname"><span class="pre">get_equivalent_qpoints</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">index</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L478-L497"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructureSymmLine.get_equivalent_qpoints" title="Link to this definition"></a></dt>
<dd><p>Get the list of qpoint indices equivalent (meaning they are the
same frac coords) to the given one.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>index</strong> (<em>int</em>) – the qpoint index</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>equivalent indices</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>list[int]</p>
</dd>
</dl>
<p>TODO: now it uses the label we might want to use coordinates instead
(in case there was a mislabel)</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.PhononBandStructureSymmLine.write_phononwebsite">
<span class="sig-name descname"><span class="pre">write_phononwebsite</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filename</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">PathLike</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L525-L530"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.PhononBandStructureSymmLine.write_phononwebsite" title="Link to this definition"></a></dt>
<dd><p>Write a JSON file for the phononwebsite:
<a class="reference external" href="https://henriquemiranda.github.io/phononwebsite">https://henriquemiranda.github.io/phononwebsite</a>.</p>
</dd></dl>

</dd></dl>

<dl class="py function">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.eigenvectors_from_displacements">
<span class="sig-name descname"><span class="pre">eigenvectors_from_displacements</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">disp</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">masses</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">np.ndarray</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L39-L41"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.eigenvectors_from_displacements" title="Link to this definition"></a></dt>
<dd><p>Calculate the eigenvectors from the atomic displacements.</p>
</dd></dl>

<dl class="py function">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.estimate_band_connection">
<span class="sig-name descname"><span class="pre">estimate_band_connection</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">prev_eigvecs</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">eigvecs</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">prev_band_order</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L44-L59"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.estimate_band_connection" title="Link to this definition"></a></dt>
<dd><p>A function to order the phonon eigenvectors taken from phonopy.</p>
</dd></dl>

<dl class="py function">
<dt class="sig sig-object py" id="pymatgen.phonon.bandstructure.get_reasonable_repetitions">
<span class="sig-name descname"><span class="pre">get_reasonable_repetitions</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">n_atoms</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">int</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/bandstructure.py#L25-L36"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.bandstructure.get_reasonable_repetitions" title="Link to this definition"></a></dt>
<dd><p>Choose the number of repetitions in a supercell
according to the number of atoms in the system.</p>
</dd></dl>

</section>
<section id="module-pymatgen.phonon.dos">
<span id="pymatgen-phonon-dos-module"></span><h2>pymatgen.phonon.dos module<a class="headerlink" href="#module-pymatgen.phonon.dos" title="Link to this heading"></a></h2>
<p>This module defines classes to represent the phonon density of states.</p>
<dl class="py class">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.CompletePhononDos">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">CompletePhononDos</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">structure</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.structure.Structure" title="pymatgen.core.structure.Structure"><span class="pre">Structure</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">total_dos</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ph_doses</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L587-L658"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.CompletePhononDos" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#pymatgen.phonon.dos.PhononDos" title="pymatgen.phonon.dos.PhononDos"><code class="xref py py-class docutils literal notranslate"><span class="pre">PhononDos</span></code></a></p>
<p>This wrapper class defines a total dos, and also provides a list of PDos.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.CompletePhononDos.pdos">
<span class="sig-name descname"><span class="pre">pdos</span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/dos.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.CompletePhononDos.pdos" title="Link to this definition"></a></dt>
<dd><p>Dict of partial densities of the form {Site:Densities}.
Densities are a dict of {Orbital:Values} where Values are a list of floats.
Site is a pymatgen.core.sites.Site object.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>dict</p>
</dd>
</dl>
</dd></dl>

<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>structure</strong> – Structure associated with this particular DOS.</p></li>
<li><p><strong>total_dos</strong> – total Dos for structure</p></li>
<li><p><strong>ph_doses</strong> – The phonon DOSes are supplied as a dict of {Site: Densities}.</p></li>
</ul>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.CompletePhononDos.as_dict">
<span class="sig-name descname"><span class="pre">as_dict</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L642-L655"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.CompletePhononDos.as_dict" title="Link to this definition"></a></dt>
<dd><p>JSON-serializable dict representation of CompletePhononDos.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.CompletePhononDos.from_dict">
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_dict</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">dct</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Self</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L633-L640"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.CompletePhononDos.from_dict" title="Link to this definition"></a></dt>
<dd><p>Get CompleteDos object from dict representation.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.CompletePhononDos.get_element_dos">
<span class="sig-name descname"><span class="pre">get_element_dos</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">dict</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L618-L631"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.CompletePhononDos.get_element_dos" title="Link to this definition"></a></dt>
<dd><p>Get element projected Dos.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>Dos}</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>dict of {Element</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.CompletePhononDos.get_site_dos">
<span class="sig-name descname"><span class="pre">get_site_dos</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">site</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos" title="pymatgen.phonon.dos.PhononDos"><span class="pre">PhononDos</span></a></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L607-L616"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.CompletePhononDos.get_site_dos" title="Link to this definition"></a></dt>
<dd><p>Get the Dos for a site.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>site</strong> – Site in Structure associated with CompletePhononDos.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>containing summed orbital densities for site.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos" title="pymatgen.phonon.dos.PhononDos">PhononDos</a></p>
</dd>
</dl>
</dd></dl>

</dd></dl>

<dl class="py class">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDos">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PhononDos</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">frequencies</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">densities</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L28-L564"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDos" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">MSONable</span></code></p>
<p>Basic DOS object. All other DOS objects are extended versions of this object.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>frequencies</strong> – A sequence of frequencies in THz</p></li>
<li><p><strong>densities</strong> – A sequence representing the density of states.</p></li>
</ul>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDos.as_dict">
<span class="sig-name descname"><span class="pre">as_dict</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">dict</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L145-L152"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDos.as_dict" title="Link to this definition"></a></dt>
<dd><p>JSON-serializable dict representation of PhononDos.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDos.cv">
<span class="sig-name descname"><span class="pre">cv</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">temp</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">structure</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.structure.Structure" title="pymatgen.core.structure.Structure"><span class="pre">Structure</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L172-L207"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDos.cv" title="Link to this definition"></a></dt>
<dd><p>Constant volume specific heat C_v at temperature T obtained from the integration of the DOS.
Only positive frequencies will be used.
Result in J/(K*mol-c). A mol-c is the abbreviation of a mole-cell, that is, the number
of Avogadro times the atoms in a unit cell. To compare with experimental data the result
should be divided by the number of unit formulas in the cell. If the structure is provided
the division is performed internally and the result is in J/(K*mol).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>temp</strong> – a temperature in K</p></li>
<li><p><strong>structure</strong> – the structure of the system. If not None it will be used to determine the number of
formula units</p></li>
<li><p><strong>**kwargs</strong> – allows passing in deprecated t parameter for temp</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>Constant volume specific heat C_v</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDos.entropy">
<span class="sig-name descname"><span class="pre">entropy</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">temp</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">structure</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.structure.Structure" title="pymatgen.core.structure.Structure"><span class="pre">Structure</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L209-L242"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDos.entropy" title="Link to this definition"></a></dt>
<dd><p>Vibrational entropy at temperature T obtained from the integration of the DOS.
Only positive frequencies will be used.
Result in J/(K*mol-c). A mol-c is the abbreviation of a mole-cell, that is, the number
of Avogadro times the atoms in a unit cell. To compare with experimental data the result
should be divided by the number of unit formulas in the cell. If the structure is provided
the division is performed internally and the result is in J/(K*mol).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>temp</strong> – a temperature in K</p></li>
<li><p><strong>structure</strong> – the structure of the system. If not None it will be used to determine the number of
formula units</p></li>
<li><p><strong>**kwargs</strong> – allows passing in deprecated t parameter for temp</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>Vibrational entropy</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDos.fp_to_dict">
<em class="property"><span class="k"><span class="pre">static</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">fp_to_dict</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">fp</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pymatgen.phonon.dos.PhononDosFingerprint" title="pymatgen.phonon.dos.PhononDosFingerprint"><span class="pre">PhononDosFingerprint</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">dict</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L489-L502"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDos.fp_to_dict" title="Link to this definition"></a></dt>
<dd><p>Convert a fingerprint into a dictionary.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>fp</strong> – The DOS fingerprint to be converted into a dictionary</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>A dict of the fingerprint Keys=type, Values=np.ndarray(frequencies, densities)</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>dict</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDos.from_dict">
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_dict</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">dct</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">ArrayLike</span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Self</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L140-L143"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDos.from_dict" title="Link to this definition"></a></dt>
<dd><p>Get PhononDos object from dict representation of PhononDos.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDos.get_dos_fp">
<span class="sig-name descname"><span class="pre">get_dos_fp</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">binning</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">min_f</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_f</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">n_bins</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">256</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">normalize</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference internal" href="#pymatgen.phonon.dos.PhononDosFingerprint" title="pymatgen.phonon.dos.PhononDosFingerprint"><span class="pre">PhononDosFingerprint</span></a></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L418-L487"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDos.get_dos_fp" title="Link to this definition"></a></dt>
<dd><p>Generate the DOS fingerprint.</p>
<dl class="simple">
<dt>Based on the work of:</dt><dd><p>F. Knoop, T. A. r Purcell, M. Scheffler, C. Carbogno, J. Open Source Softw. 2020, 5, 2671.
Source - <a class="reference external" href="https://gitlab.com/vibes-developers/vibes/-/tree/master/vibes/materials_fp">https://gitlab.com/vibes-developers/vibes/-/tree/master/vibes/materials_fp</a>
Copyright (c) 2020 Florian Knoop, Thomas A.R.Purcell, Matthias Scheffler, Christian Carbogno.
Please also see and cite related work by:
M. Kuban, S. Rigamonti, C. Draxl, Digital Discovery 2024, 3, 2448.</p>
</dd>
</dl>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>binning</strong> (<em>bool</em>) – If true, the DOS fingerprint is binned using np.linspace and n_bins.
Default is True.</p></li>
<li><p><strong>min_f</strong> (<em>float</em>) – The minimum mode frequency to include in the fingerprint (default is None)</p></li>
<li><p><strong>max_f</strong> (<em>float</em>) – The maximum mode frequency to include in the fingerprint (default is None)</p></li>
<li><p><strong>n_bins</strong> (<em>int</em>) – Number of bins to be used in the fingerprint (default is 256)</p></li>
<li><p><strong>normalize</strong> (<em>bool</em>) – If true, normalizes the area under fp to equal to 1. Default is True.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><dl class="simple">
<dt>The phonon density of states fingerprint</dt><dd><p>of format (frequencies, densities, n_bins, bin_width)</p>
</dd>
</dl>
</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference internal" href="#pymatgen.phonon.dos.PhononDosFingerprint" title="pymatgen.phonon.dos.PhononDosFingerprint">PhononDosFingerprint</a></p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDos.get_dos_fp_similarity">
<em class="property"><span class="k"><span class="pre">static</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_dos_fp_similarity</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">fp1</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pymatgen.phonon.dos.PhononDosFingerprint" title="pymatgen.phonon.dos.PhononDosFingerprint"><span class="pre">PhononDosFingerprint</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">fp2</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pymatgen.phonon.dos.PhononDosFingerprint" title="pymatgen.phonon.dos.PhononDosFingerprint"><span class="pre">PhononDosFingerprint</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">col</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">pt</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'All'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">normalize</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">metric</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'tanimoto'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'wasserstein'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cosine-sim'</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'tanimoto'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L504-L564"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDos.get_dos_fp_similarity" title="Link to this definition"></a></dt>
<dd><p>Calculate the similarity index between two fingerprints.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>fp1</strong> (<a class="reference internal" href="#pymatgen.phonon.dos.PhononDosFingerprint" title="pymatgen.phonon.dos.PhononDosFingerprint"><em>PhononDosFingerprint</em></a>) – The 1st dos fingerprint object</p></li>
<li><p><strong>fp2</strong> (<a class="reference internal" href="#pymatgen.phonon.dos.PhononDosFingerprint" title="pymatgen.phonon.dos.PhononDosFingerprint"><em>PhononDosFingerprint</em></a>) – The 2nd dos fingerprint object</p></li>
<li><p><strong>col</strong> (<em>int</em>) – The item in the fingerprints (0:frequencies,1: densities) to compute
the similarity index of  (default is 1)</p></li>
<li><p><strong>pt</strong> (<em>int</em><em> or </em><em>str</em>) – The index of the point that the dot product is to be taken (default is All)</p></li>
<li><p><strong>normalize</strong> (<em>bool</em>) – If True normalize the scalar product to 1 (default is False)</p></li>
<li><p><strong>metric</strong> (<em>Literal</em>) – Metric used to compute similarity default is “tanimoto”.</p></li>
</ul>
</dd>
<dt class="field-even">Raises<span class="colon">:</span></dt>
<dd class="field-even"><ul class="simple">
<li><p><strong>ValueError</strong> – If metric other than “tanimoto”, “wasserstein” and “cosine-sim” is requested.</p></li>
<li><p><strong>ValueError</strong> – If normalize is set to True along with the metric.</p></li>
</ul>
</dd>
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>Similarity index given by the dot product</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>float</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDos.get_interpolated_value">
<span class="sig-name descname"><span class="pre">get_interpolated_value</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">frequency</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L125-L131"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDos.get_interpolated_value" title="Link to this definition"></a></dt>
<dd><p>Get interpolated density for a particular frequency.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>frequency</strong> – frequency to return the density for.</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDos.get_last_peak">
<span class="sig-name descname"><span class="pre">get_last_peak</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">threshold</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">0.05</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L377-L416"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDos.get_last_peak" title="Link to this definition"></a></dt>
<dd><p>Find the last peak in the phonon DOS defined as the highest frequency with a DOS
value at least threshold * height of the overall highest DOS peak.
A peak is any local maximum of the DOS as a function of frequency.
Use dos.get_interpolated_value(peak_freq) to get density at peak_freq.</p>
<p>TODO method added by &#64;janosh on 2023-12-18. seems to work in most cases but
was not extensively tested. PRs with improvements welcome!</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>threshold</strong> (<em>float</em><em>, </em><em>optional</em>) – Minimum ratio of the height of the last peak
to the height of the highest peak. Defaults to 0.05 = 5%. In case no peaks
are high enough to match, the threshold is reset to half the height of the
second-highest peak.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>last DOS peak frequency (in THz)</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDos.get_smeared_densities">
<span class="sig-name descname"><span class="pre">get_smeared_densities</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">sigma</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">ndarray</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L40-L56"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDos.get_smeared_densities" title="Link to this definition"></a></dt>
<dd><p>Get the densities, but with a Gaussian smearing of
std dev sigma applied.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>sigma</strong> – Std dev of Gaussian smearing function. In units of
THz. Common values are 0.01 - 0.1 THz.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>Gaussian-smeared DOS densities.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>np.array</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDos.helmholtz_free_energy">
<span class="sig-name descname"><span class="pre">helmholtz_free_energy</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">temp</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">structure</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.structure.Structure" title="pymatgen.core.structure.Structure"><span class="pre">Structure</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L279-L312"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDos.helmholtz_free_energy" title="Link to this definition"></a></dt>
<dd><p>Phonon contribution to the Helmholtz free energy at temperature T obtained from the integration of the DOS.
Only positive frequencies will be used.
Result in J/mol-c. A mol-c is the abbreviation of a mole-cell, that is, the number
of Avogadro times the atoms in a unit cell. To compare with experimental data the result
should be divided by the number of unit formulas in the cell. If the structure is provided
the division is performed internally and the result is in J/mol.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>temp</strong> – a temperature in K</p></li>
<li><p><strong>structure</strong> – the structure of the system. If not None it will be used to determine the number of
formula units</p></li>
<li><p><strong>**kwargs</strong> – allows passing in deprecated t parameter for temp</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>Phonon contribution to the Helmholtz free energy</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDos.ind_zero_freq">
<span class="sig-name descname"><span class="pre">ind_zero_freq</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/dos.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDos.ind_zero_freq" title="Link to this definition"></a></dt>
<dd><p>Index of the first point for which the frequencies are &gt;= 0.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDos.internal_energy">
<span class="sig-name descname"><span class="pre">internal_energy</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">temp</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">structure</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.structure.Structure" title="pymatgen.core.structure.Structure"><span class="pre">Structure</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L244-L277"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDos.internal_energy" title="Link to this definition"></a></dt>
<dd><p>Phonon contribution to the internal energy at temperature T obtained from the integration of the DOS.
Only positive frequencies will be used.
Result in J/mol-c. A mol-c is the abbreviation of a mole-cell, that is, the number
of Avogadro times the atoms in a unit cell. To compare with experimental data the result
should be divided by the number of unit formulas in the cell. If the structure is provided
the division is performed internally and the result is in J/mol.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>temp</strong> – a temperature in K</p></li>
<li><p><strong>structure</strong> – the structure of the system. If not None it will be used to determine the number of
formula units</p></li>
<li><p><strong>**kwargs</strong> – allows passing in deprecated t parameter for temp</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>Phonon contribution to the internal energy</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDos.mae">
<span class="sig-name descname"><span class="pre">mae</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">other</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos" title="pymatgen.phonon.dos.PhononDos"><span class="pre">PhononDos</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">two_sided</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L340-L360"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDos.mae" title="Link to this definition"></a></dt>
<dd><p>Mean absolute error between two DOSs.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>other</strong> (<a class="reference internal" href="#pymatgen.phonon.dos.PhononDos" title="pymatgen.phonon.dos.PhononDos"><em>PhononDos</em></a>) – Another phonon DOS</p></li>
<li><p><strong>two_sided</strong> (<em>bool</em>) – Whether to calculate the two-sided MAE meaning interpolate each DOS to the
other’s frequencies and averaging the two MAEs. Defaults to True.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>Mean absolute error.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDos.r2_score">
<span class="sig-name descname"><span class="pre">r2_score</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">other</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos" title="pymatgen.phonon.dos.PhononDos"><span class="pre">PhononDos</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L362-L375"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDos.r2_score" title="Link to this definition"></a></dt>
<dd><p>R^2 score between two DOSs.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>other</strong> (<a class="reference internal" href="#pymatgen.phonon.dos.PhononDos" title="pymatgen.phonon.dos.PhononDos"><em>PhononDos</em></a>) – Another phonon DOS</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>R^2 score</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDos.zero_point_energy">
<span class="sig-name descname"><span class="pre">zero_point_energy</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">structure</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.structure.Structure" title="pymatgen.core.structure.Structure"><span class="pre">Structure</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L314-L338"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDos.zero_point_energy" title="Link to this definition"></a></dt>
<dd><p>Zero point energy of the system. Only positive frequencies will be used.
Result in J/mol-c. A mol-c is the abbreviation of a mole-cell, that is, the number
of Avogadro times the atoms in a unit cell. To compare with experimental data the result
should be divided by the number of unit formulas in the cell. If the structure is provided
the division is performed internally and the result is in J/mol.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>structure</strong> – the structure of the system. If not None it will be used to determine the number of
formula units</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>Phonon contribution to the internal energy</p>
</dd>
</dl>
</dd></dl>

</dd></dl>

<dl class="py class">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDosFingerprint">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PhononDosFingerprint</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">frequencies</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">NDArray</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">densities</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">NDArray</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">n_bins</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bin_width</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/dos.py#L567-L584"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDosFingerprint" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">NamedTuple</span></code></p>
<p>Represents a Phonon Density of States (DOS) fingerprint.</p>
<p>This named tuple is used to store information related to the Density of States (DOS)
in a material. It includes the frequencies, densities, number of bins, and bin width.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>frequencies</strong> – The frequency values associated with the DOS.</p></li>
<li><p><strong>densities</strong> – The corresponding density values for each energy.</p></li>
<li><p><strong>n_bins</strong> – The number of bins used in the fingerprint.</p></li>
<li><p><strong>bin_width</strong> – The width of each bin in the DOS fingerprint.</p></li>
</ul>
</dd>
</dl>
<p>Create new instance of PhononDosFingerprint(frequencies, densities, n_bins, bin_width)</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDosFingerprint.bin_width">
<span class="sig-name descname"><span class="pre">bin_width</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">float</span></em><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/dos.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDosFingerprint.bin_width" title="Link to this definition"></a></dt>
<dd><p>Alias for field number 3</p>
</dd></dl>

<dl class="py attribute">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDosFingerprint.densities">
<span class="sig-name descname"><span class="pre">densities</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">NDArray</span></em><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/dos.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDosFingerprint.densities" title="Link to this definition"></a></dt>
<dd><p>Alias for field number 1</p>
</dd></dl>

<dl class="py attribute">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDosFingerprint.frequencies">
<span class="sig-name descname"><span class="pre">frequencies</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">NDArray</span></em><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/dos.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDosFingerprint.frequencies" title="Link to this definition"></a></dt>
<dd><p>Alias for field number 0</p>
</dd></dl>

<dl class="py attribute">
<dt class="sig sig-object py" id="pymatgen.phonon.dos.PhononDosFingerprint.n_bins">
<span class="sig-name descname"><span class="pre">n_bins</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">int</span></em><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/dos.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.dos.PhononDosFingerprint.n_bins" title="Link to this definition"></a></dt>
<dd><p>Alias for field number 2</p>
</dd></dl>

</dd></dl>

</section>
<section id="module-pymatgen.phonon.gruneisen">
<span id="pymatgen-phonon-gruneisen-module"></span><h2>pymatgen.phonon.gruneisen module<a class="headerlink" href="#module-pymatgen.phonon.gruneisen" title="Link to this heading"></a></h2>
<p>This module provides classes to define a Grueneisen band structure.</p>
<dl class="py class">
<dt class="sig sig-object py" id="pymatgen.phonon.gruneisen.GruneisenParameter">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">GruneisenParameter</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">qpoints</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">gruneisen</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">frequencies</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">multiplicities</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Sequence</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">structure</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.structure.Structure" title="pymatgen.core.structure.Structure"><span class="pre">Structure</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lattice</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.lattice.Lattice" title="pymatgen.core.lattice.Lattice"><span class="pre">Lattice</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/gruneisen.py#L41-L238"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.gruneisen.GruneisenParameter" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">MSONable</span></code></p>
<p>Store the Gruneisen parameter for a single q-point on a regular grid.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>qpoints</strong> – list of qpoints as numpy arrays, in frac_coords of the given lattice by default</p></li>
<li><p><strong>gruneisen</strong> – list of gruneisen parameters as numpy arrays, shape: (3*len(structure), len(qpoints))</p></li>
<li><p><strong>frequencies</strong> – list of phonon frequencies in THz as a numpy array with shape (3*len(structure), len(qpoints))</p></li>
<li><p><strong>multiplicities</strong> – list of multiplicities</p></li>
<li><p><strong>structure</strong> – The crystal structure (as a pymatgen Structure object) associated with the gruneisen parameters.</p></li>
<li><p><strong>lattice</strong> – The reciprocal lattice as a pymatgen Lattice object. Pymatgen uses the physics convention of
reciprocal lattice vectors WITH a 2*pi coefficient.</p></li>
</ul>
</dd>
</dl>
<dl class="py property">
<dt class="sig sig-object py" id="pymatgen.phonon.gruneisen.GruneisenParameter.acoustic_debye_temp">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">acoustic_debye_temp</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">float</span></em><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/gruneisen.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.gruneisen.GruneisenParameter.acoustic_debye_temp" title="Link to this definition"></a></dt>
<dd><p>Acoustic Debye temperature in K, i.e. the Debye temperature divided by n_sites**(1/3).
Adapted from abipy.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.gruneisen.GruneisenParameter.average_gruneisen">
<span class="sig-name descname"><span class="pre">average_gruneisen</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">t</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">squared</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">limit_frequencies</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'debye'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'acoustic'</span></span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/gruneisen.py#L70-L132"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.gruneisen.GruneisenParameter.average_gruneisen" title="Link to this definition"></a></dt>
<dd><p>Calculate the average of the Gruneisen based on the values on the regular grid.
If squared is True, the average will use the squared value of the Gruneisen and a squared root
is performed on the final result.
Values associated with negative frequencies will be ignored.
See Nath et al. _Scripta <a href="#id5"><span class="problematic" id="id6">Materialia_</span></a> <strong>2017</strong>, _129_, 88 for the definitions.
Adapted from classes in abipy that have been written by Guido Petretto (UCLouvain).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>t</strong> – the temperature at which the average Gruneisen will be evaluated. If None the acoustic Debye
temperature is used (see acoustic_debye_temp).</p></li>
<li><p><strong>squared</strong> – if True the average is performed on the squared values of the Grueneisen.</p></li>
<li><p><strong>limit_frequencies</strong> – if None (default) no limit on the frequencies will be applied.
Possible values are “debye” (only modes with frequencies lower than the acoustic Debye
temperature) and “acoustic” (only the acoustic modes, i.e. the first three modes).</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The average Gruneisen parameter</p>
</dd>
</dl>
</dd></dl>

<dl class="py property">
<dt class="sig sig-object py" id="pymatgen.phonon.gruneisen.GruneisenParameter.debye_temp_limit">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">debye_temp_limit</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">float</span></em><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/gruneisen.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.gruneisen.GruneisenParameter.debye_temp_limit" title="Link to this definition"></a></dt>
<dd><p>Debye temperature in K. Adapted from apipy.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.gruneisen.GruneisenParameter.debye_temp_phonopy">
<span class="sig-name descname"><span class="pre">debye_temp_phonopy</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">freq_max_fit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/gruneisen.py#L212-L229"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.gruneisen.GruneisenParameter.debye_temp_phonopy" title="Link to this definition"></a></dt>
<dd><p>Get Debye temperature in K as implemented in phonopy.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>freq_max_fit</strong> – Maximum frequency to include for fitting.
Defaults to include first quartile of frequencies.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>Debye temperature in K.</p>
</dd>
</dl>
</dd></dl>

<dl class="py property">
<dt class="sig sig-object py" id="pymatgen.phonon.gruneisen.GruneisenParameter.phdos">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">phdos</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos" title="pymatgen.phonon.dos.PhononDos"><span class="pre">PhononDos</span></a></em><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/gruneisen.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.gruneisen.GruneisenParameter.phdos" title="Link to this definition"></a></dt>
<dd><p>The phonon DOS (re)constructed from the gruneisen.yaml file.</p>
</dd></dl>

<dl class="py property">
<dt class="sig sig-object py" id="pymatgen.phonon.gruneisen.GruneisenParameter.tdos">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">tdos</span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/gruneisen.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.gruneisen.GruneisenParameter.tdos" title="Link to this definition"></a></dt>
<dd><p>The total DOS (re)constructed from the gruneisen.yaml file.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.gruneisen.GruneisenParameter.thermal_conductivity_slack">
<span class="sig-name descname"><span class="pre">thermal_conductivity_slack</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">squared</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">limit_frequencies</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'debye'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'acoustic'</span></span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">theta_d</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">t</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/gruneisen.py#L134-L175"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.gruneisen.GruneisenParameter.thermal_conductivity_slack" title="Link to this definition"></a></dt>
<dd><p>Calculate the thermal conductivity at the acoustic Debye temperature with the Slack formula,
using the average Gruneisen. Adapted from abipy.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>squared</strong> (<em>bool</em>) – if True the average is performed on the squared values of the Gruneisen</p></li>
<li><p><strong>limit_frequencies</strong> – if None (default) no limit on the frequencies will be applied.
Possible values are “debye” (only modes with frequencies lower than the acoustic Debye
temperature) and “acoustic” (only the acoustic modes, i.e. the first three modes).</p></li>
<li><p><strong>theta_d</strong> – the temperature used to estimate the average of the Gruneisen used in the
Slack formula. If None the acoustic Debye temperature is used (see
acoustic_debye_temp). Will also be considered as the Debye temperature in the
Slack formula.</p></li>
<li><p><strong>t</strong> – temperature at which the thermal conductivity is estimated. If None the value at
the calculated acoustic Debye temperature is given. The value is obtained as a
simple rescaling of the value at the Debye temperature.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The value of the thermal conductivity in W/(m*K)</p>
</dd>
</dl>
</dd></dl>

</dd></dl>

<dl class="py class">
<dt class="sig sig-object py" id="pymatgen.phonon.gruneisen.GruneisenPhononBandStructure">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">GruneisenPhononBandStructure</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">qpoints</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">frequencies</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">gruneisenparameters</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lattice</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.lattice.Lattice" title="pymatgen.core.lattice.Lattice"><span class="pre">Lattice</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">eigendisplacements</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">labels_dict</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">coords_are_cartesian</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">structure</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.structure.Structure" title="pymatgen.core.structure.Structure"><span class="pre">Structure</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/gruneisen.py#L241-L343"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.gruneisen.GruneisenPhononBandStructure" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructure" title="pymatgen.phonon.bandstructure.PhononBandStructure"><code class="xref py py-class docutils literal notranslate"><span class="pre">PhononBandStructure</span></code></a></p>
<p>This is the most generic phonon band structure data possible
it’s defined by a list of qpoints + frequencies for each of them.
Additional information may be given for frequencies at Gamma, where
non-analytical contribution may be taken into account.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>qpoints</strong> – list of qpoint as numpy arrays, in frac_coords of the
given lattice by default</p></li>
<li><p><strong>frequencies</strong> – list of phonon frequencies in THz as a numpy array with shape
(3*len(structure), len(qpoints)). The First index of the array
refers to the band and the second to the index of the qpoint.</p></li>
<li><p><strong>gruneisenparameters</strong> – list of Grueneisen parameters with the same structure
frequencies.</p></li>
<li><p><strong>lattice</strong> – The reciprocal lattice as a pymatgen Lattice object.
Pymatgen uses the physics convention of reciprocal lattice vectors
WITH a 2*pi coefficient.</p></li>
<li><p><strong>eigendisplacements</strong> – the phonon eigendisplacements associated to the
frequencies in Cartesian coordinates. A numpy array of complex
numbers with shape (3*len(structure), len(qpoints), len(structure), 3).
The first index of the array refers to the band, the second to the index
of the qpoint, the third to the atom in the structure and the fourth
to the Cartesian coordinates.</p></li>
<li><p><strong>labels_dict</strong> – (dict) of {} this links a qpoint (in frac coords or
Cartesian coordinates depending on the coords) to a label.</p></li>
<li><p><strong>coords_are_cartesian</strong> – Whether the qpoint coordinates are Cartesian.</p></li>
<li><p><strong>structure</strong> – The crystal structure (as a pymatgen Structure object)
associated with the band structure. This is needed if we
provide projections to the band structure.</p></li>
</ul>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.gruneisen.GruneisenPhononBandStructure.as_dict">
<span class="sig-name descname"><span class="pre">as_dict</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">dict</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/gruneisen.py#L298-L319"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.gruneisen.GruneisenPhononBandStructure.as_dict" title="Link to this definition"></a></dt>
<dd><dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>MSONable dict.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>dict[str, Any]</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.gruneisen.GruneisenPhononBandStructure.from_dict">
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_dict</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">dct</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Self</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/gruneisen.py#L321-L343"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.gruneisen.GruneisenPhononBandStructure.from_dict" title="Link to this definition"></a></dt>
<dd><dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>dct</strong> (<em>dict</em>) – Dict representation.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>Phonon band structure with Grueneisen parameters.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p><a class="reference internal" href="#pymatgen.phonon.gruneisen.GruneisenPhononBandStructure" title="pymatgen.phonon.gruneisen.GruneisenPhononBandStructure">GruneisenPhononBandStructure</a></p>
</dd>
</dl>
</dd></dl>

</dd></dl>

<dl class="py class">
<dt class="sig sig-object py" id="pymatgen.phonon.gruneisen.GruneisenPhononBandStructureSymmLine">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">GruneisenPhononBandStructureSymmLine</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">qpoints</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">frequencies</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">gruneisenparameters</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">lattice</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.lattice.Lattice" title="pymatgen.core.lattice.Lattice"><span class="pre">Lattice</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">eigendisplacements</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">labels_dict</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">coords_are_cartesian</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">structure</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.structure.Structure" title="pymatgen.core.structure.Structure"><span class="pre">Structure</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/gruneisen.py#L346-L428"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.gruneisen.GruneisenPhononBandStructureSymmLine" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#pymatgen.phonon.gruneisen.GruneisenPhononBandStructure" title="pymatgen.phonon.gruneisen.GruneisenPhononBandStructure"><code class="xref py py-class docutils literal notranslate"><span class="pre">GruneisenPhononBandStructure</span></code></a>, <a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructureSymmLine" title="pymatgen.phonon.bandstructure.PhononBandStructureSymmLine"><code class="xref py py-class docutils literal notranslate"><span class="pre">PhononBandStructureSymmLine</span></code></a></p>
<p>Store a GruneisenPhononBandStructureSymmLine together with Grueneisen parameters
for every frequency.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>qpoints</strong> – list of qpoints as numpy arrays, in frac_coords of the
given lattice by default</p></li>
<li><p><strong>frequencies</strong> – list of phonon frequencies in eV as a numpy array with shape
(3*len(structure), len(qpoints))</p></li>
<li><p><strong>gruneisenparameters</strong> – list of Grueneisen parameters as a numpy array with the
shape (3*len(structure), len(qpoints))</p></li>
<li><p><strong>lattice</strong> – The reciprocal lattice as a pymatgen Lattice object.
Pymatgen uses the physics convention of reciprocal lattice vectors
WITH a 2*pi coefficient</p></li>
<li><p><strong>eigendisplacements</strong> – the phonon eigendisplacements associated to the
frequencies in Cartesian coordinates. A numpy array of complex
numbers with shape (3*len(structure), len(qpoints), len(structure), 3).
The first index of the array refers to the band, the second to the index
of the qpoint, the third to the atom in the structure and the fourth
to the Cartesian coordinates.</p></li>
<li><p><strong>labels_dict</strong> – (dict) of {} this links a qpoint (in frac coords or
Cartesian coordinates depending on the coords) to a label.</p></li>
<li><p><strong>coords_are_cartesian</strong> – Whether the qpoint coordinates are cartesian.</p></li>
<li><p><strong>structure</strong> – The crystal structure (as a pymatgen Structure object)
associated with the band structure. This is needed if we
provide projections to the band structure.</p></li>
</ul>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.gruneisen.GruneisenPhononBandStructureSymmLine.from_dict">
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_dict</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">dct</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Self</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/gruneisen.py#L406-L428"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.gruneisen.GruneisenPhononBandStructureSymmLine.from_dict" title="Link to this definition"></a></dt>
<dd><dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>dct</strong> (<em>dict</em>) – Dict representation.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>GruneisenPhononBandStructureSymmLine</p>
</dd>
</dl>
</dd></dl>

</dd></dl>

</section>
<section id="module-pymatgen.phonon.ir_spectra">
<span id="pymatgen-phonon-ir-spectra-module"></span><h2>pymatgen.phonon.ir_spectra module<a class="headerlink" href="#module-pymatgen.phonon.ir_spectra" title="Link to this heading"></a></h2>
<p>This module provides classes to handle the calculation of the IR spectra
This implementation is adapted from Abipy
<a class="reference external" href="https://github.com/abinit/abipy">https://github.com/abinit/abipy</a>
where it was originally done by Guido Petretto and Matteo Giantomassi.</p>
<dl class="py class">
<dt class="sig sig-object py" id="pymatgen.phonon.ir_spectra.IRDielectricTensor">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">IRDielectricTensor</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">oscillator_strength</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ph_freqs_gamma</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">epsilon_infinity</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">structure</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.structure.Structure" title="pymatgen.core.structure.Structure"><span class="pre">Structure</span></a></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/ir_spectra.py#L37-L240"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.ir_spectra.IRDielectricTensor" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">MSONable</span></code></p>
<p>Handle the Ionic Dielectric Tensor
The implementation is adapted from Abipy
See the definitions Eq.(53-54) in <a href="#id1"><span class="problematic" id="id2">:cite:`Gonze1997`</span></a> PRB55, 10355 (1997).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>oscillator_strength</strong> – IR oscillator strengths as defined in Eq. 54 in
<a href="#id3"><span class="problematic" id="id4">:cite:`Gonze1997`</span></a> PRB55, 10355 (1997).</p></li>
<li><p><strong>ph_freqs_gamma</strong> – Phonon frequencies at the Gamma point</p></li>
<li><p><strong>epsilon_infinity</strong> – electronic susceptibility as defined in Eq. 29.</p></li>
<li><p><strong>structure</strong> – A Structure object corresponding to the structure used for the calculation.</p></li>
</ul>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.ir_spectra.IRDielectricTensor.as_dict">
<span class="sig-name descname"><span class="pre">as_dict</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">dict</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/ir_spectra.py#L82-L91"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.ir_spectra.IRDielectricTensor.as_dict" title="Link to this definition"></a></dt>
<dd><p>JSON-serializable dict representation of IRDielectricTensor.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.ir_spectra.IRDielectricTensor.from_dict">
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_dict</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">dct</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Self</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/ir_spectra.py#L63-L70"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.ir_spectra.IRDielectricTensor.from_dict" title="Link to this definition"></a></dt>
<dd><p>Get IRDielectricTensor from dict representation.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.ir_spectra.IRDielectricTensor.get_ir_spectra">
<span class="sig-name descname"><span class="pre">get_ir_spectra</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">broad</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">list</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">float</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">5e-05</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">emin</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">emax</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">divs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">500</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">tuple</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/ir_spectra.py#L98-L136"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.ir_spectra.IRDielectricTensor.get_ir_spectra" title="Link to this definition"></a></dt>
<dd><p>The IR spectra is obtained for the different directions.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>broad</strong> – a list of broadenings or a single broadening for the phonon peaks</p></li>
<li><p><strong>emin</strong> (<em>float</em>) – minimum energy in which to obtain the spectra. Defaults to 0.</p></li>
<li><p><strong>emax</strong> (<em>float</em>) – maximum energy in which to obtain the spectra. Defaults to None.</p></li>
<li><p><strong>divs</strong> – number of frequency samples between emin and emax</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><dl class="simple">
<dt>divs array with the frequencies at which the</dt><dd><p>dielectric tensor is calculated</p>
</dd>
<dt>dielectric_tensor: divsx3x3 numpy array with the dielectric tensor</dt><dd><p>for the range of frequencies</p>
</dd>
</dl>
</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>frequencies</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.ir_spectra.IRDielectricTensor.get_plotter">
<span class="sig-name descname"><span class="pre">get_plotter</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">components</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Sequence</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">('xx',)</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'reim'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">broad</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">list</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">float</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">5e-05</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">emin</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">emax</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">divs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">500</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference internal" href="pymatgen.vis.html#pymatgen.vis.plotters.SpectrumPlotter" title="pymatgen.vis.plotters.SpectrumPlotter"><span class="pre">SpectrumPlotter</span></a></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/ir_spectra.py#L196-L240"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.ir_spectra.IRDielectricTensor.get_plotter" title="Link to this definition"></a></dt>
<dd><p>Return an instance of the Spectrum plotter containing the different requested components.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>components</strong> – A list with the components of the dielectric tensor to plot.
Can be either two indexes or a string like ‘xx’ to plot the (0,0) component</p></li>
<li><p><strong>reim</strong> – If ‘re’ (im) is present in the string plots the real (imaginary) part of the dielectric tensor</p></li>
<li><p><strong>broad</strong> (<em>float</em>) – a list of broadenings or a single broadening for the phonon peaks. Defaults to 0.00005.</p></li>
<li><p><strong>emin</strong> (<em>float</em>) – minimum energy in which to obtain the spectra. Defaults to 0.</p></li>
<li><p><strong>emax</strong> (<em>float</em>) – maximum energy in which to obtain the spectra. Defaults to None.</p></li>
<li><p><strong>divs</strong> – number of frequency samples between emin and emax</p></li>
<li><p><strong>**kwargs</strong> – Passed to IRDielectricTensor.get_spectrum()</p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.ir_spectra.IRDielectricTensor.get_spectrum">
<span class="sig-name descname"><span class="pre">get_spectrum</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">component</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Sequence</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">broad</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">list</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">float</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">5e-05</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">emin</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">emax</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">divs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">500</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">label</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.spectrum.Spectrum" title="pymatgen.core.spectrum.Spectrum"><span class="pre">Spectrum</span></a></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/ir_spectra.py#L169-L194"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.ir_spectra.IRDielectricTensor.get_spectrum" title="Link to this definition"></a></dt>
<dd><p>component: either two indexes or a string like ‘xx’ to plot the (0,0) component
reim: only “re” or “im”
broad: a list of broadenings or a single broadening for the phonon peaks.</p>
</dd></dl>

<dl class="py property">
<dt class="sig sig-object py" id="pymatgen.phonon.ir_spectra.IRDielectricTensor.max_phfreq">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">max_phfreq</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">float</span></em><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/ir_spectra.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.ir_spectra.IRDielectricTensor.max_phfreq" title="Link to this definition"></a></dt>
<dd><p>Maximum phonon frequency.</p>
</dd></dl>

<dl class="py property">
<dt class="sig sig-object py" id="pymatgen.phonon.ir_spectra.IRDielectricTensor.nph_freqs">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">nph_freqs</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">int</span></em><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/ir_spectra.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.ir_spectra.IRDielectricTensor.nph_freqs" title="Link to this definition"></a></dt>
<dd><p>Number of phonon frequencies.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.ir_spectra.IRDielectricTensor.plot">
<span class="sig-name descname"><span class="pre">plot</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">components</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Sequence</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">('xx',)</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'reim'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_phonon_frequencies</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xlim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ylim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Axes</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../util/plotting.py#L138-L167"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.ir_spectra.IRDielectricTensor.plot" title="Link to this definition"></a></dt>
<dd><p>Helper function to generate the Spectrum plotter and directly plot the results.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>components</strong> – A list with the components of the dielectric tensor to plot.
Can be either two indexes or a string like ‘xx’ to plot the (0,0) component</p></li>
<li><p><strong>reim</strong> – If ‘re’ (im) is present in the string plots the real (imaginary) part of the dielectric tensor</p></li>
<li><p><strong>show_phonon_frequencies</strong> – plot a dot where the phonon frequencies are to help identify IR inactive modes</p></li>
<li><p><strong>xlim</strong> – x-limits of the plot. Defaults to None for automatic determination.</p></li>
<li><p><strong>ylim</strong> – y-limits of the plot. Defaults to None for automatic determination.</p></li>
<li><p><strong>kwargs</strong> – keyword arguments passed to the plotter</p></li>
</ul>
</dd>
</dl>
<p>Keyword arguments controlling the display of the figure:</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>kwargs</p></th>
<th class="head"><p>Meaning</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>title</p></td>
<td><p>Title of the plot (Default: None).</p></td>
</tr>
<tr class="row-odd"><td><p>show</p></td>
<td><p>True to show the figure (default: True).</p></td>
</tr>
<tr class="row-even"><td><p>savefig</p></td>
<td><p>“abc.png” or “abc.eps” to save the figure to a file.</p></td>
</tr>
<tr class="row-odd"><td><p>size_kwargs</p></td>
<td><p>Dictionary with options passed to fig.set_size_inches
e.g. size_kwargs=dict(w=3, h=4)</p></td>
</tr>
<tr class="row-even"><td><p>tight_layout</p></td>
<td><p>True to call fig.tight_layout (default: False)</p></td>
</tr>
<tr class="row-odd"><td><p>ax_grid</p></td>
<td><p>True (False) to add (remove) grid from all axes in fig.
Default: None i.e. fig is left unchanged.</p></td>
</tr>
<tr class="row-even"><td><p>ax_annotate</p></td>
<td><p>Add labels to subplots e.g. (a), (b).
Default: False</p></td>
</tr>
<tr class="row-odd"><td><p>fig_close</p></td>
<td><p>Close figure. Default: False.</p></td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.ir_spectra.IRDielectricTensor.write_json">
<span class="sig-name descname"><span class="pre">write_json</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filename</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">PathLike</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/ir_spectra.py#L93-L96"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.ir_spectra.IRDielectricTensor.write_json" title="Link to this definition"></a></dt>
<dd><p>Save a JSON file with this data.</p>
</dd></dl>

</dd></dl>

</section>
<section id="module-pymatgen.phonon.plotter">
<span id="pymatgen-phonon-plotter-module"></span><h2>pymatgen.phonon.plotter module<a class="headerlink" href="#module-pymatgen.phonon.plotter" title="Link to this heading"></a></h2>
<p>This module implements plotter for DOS and band structure.</p>
<dl class="py class">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.FreqUnits">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">FreqUnits</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">factor</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">label</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L37-L41"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.FreqUnits" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">NamedTuple</span></code></p>
<p>Conversion factor from THz to the required units and the label.</p>
<p>Create new instance of FreqUnits(factor, label)</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.FreqUnits.factor">
<span class="sig-name descname"><span class="pre">factor</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">float</span></em><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/plotter.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.FreqUnits.factor" title="Link to this definition"></a></dt>
<dd><p>Alias for field number 0</p>
</dd></dl>

<dl class="py attribute">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.FreqUnits.label">
<span class="sig-name descname"><span class="pre">label</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">str</span></em><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/plotter.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.FreqUnits.label" title="Link to this definition"></a></dt>
<dd><p>Alias for field number 1</p>
</dd></dl>

</dd></dl>

<dl class="py class">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.GruneisenPhononBSPlotter">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">GruneisenPhononBSPlotter</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">bs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pymatgen.phonon.gruneisen.GruneisenPhononBandStructureSymmLine" title="pymatgen.phonon.gruneisen.GruneisenPhononBandStructureSymmLine"><span class="pre">GruneisenPhononBandStructureSymmLine</span></a></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L1072-L1296"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.GruneisenPhononBSPlotter" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="#pymatgen.phonon.plotter.PhononBSPlotter" title="pymatgen.phonon.plotter.PhononBSPlotter"><code class="xref py py-class docutils literal notranslate"><span class="pre">PhononBSPlotter</span></code></a></p>
<p>Plot or get data to facilitate the plot of band structure objects.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>bs</strong> – A GruneisenPhononBandStructureSymmLine object.</p>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.GruneisenPhononBSPlotter.bs_plot_data">
<span class="sig-name descname"><span class="pre">bs_plot_data</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L1088-L1126"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.GruneisenPhononBSPlotter.bs_plot_data" title="Link to this definition"></a></dt>
<dd><p>Get the data nicely formatted for a plot.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>ticks: A dict with the ‘distances’ at which there is a qpoint (the
x axis) and the labels (None if no label)
frequencies: A list (one element for each branch) of frequencies for
each qpoint: [branch][qpoint][mode]. The data is
stored by branch to facilitate the plotting
gruneisen: GruneisenPhononBandStructureSymmLine
lattice: The reciprocal lattice.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>A dict of the following format</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.GruneisenPhononBSPlotter.get_plot_gs">
<span class="sig-name descname"><span class="pre">get_plot_gs</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ylim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">plot_ph_bs_with_gruneisen</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Axes</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L1128-L1218"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.GruneisenPhononBSPlotter.get_plot_gs" title="Link to this definition"></a></dt>
<dd><p>Get a matplotlib object for the Gruneisen bandstructure plot.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>ylim</strong> – Specify the y-axis (gruneisen) limits; by default None let
the code choose.</p></li>
<li><p><strong>plot_ph_bs_with_gruneisen</strong> (<em>bool</em>) – Plot phonon band-structure with bands coloured
as per Gruneisen parameter values on a logarithmic scale</p></li>
<li><p><strong>**kwargs</strong> – additional keywords passed to ax.plot().</p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.GruneisenPhononBSPlotter.plot_compare_gs">
<span class="sig-name descname"><span class="pre">plot_compare_gs</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">other_plotter</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pymatgen.phonon.plotter.GruneisenPhononBSPlotter" title="pymatgen.phonon.plotter.GruneisenPhononBSPlotter"><span class="pre">GruneisenPhononBSPlotter</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Axes</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L1259-L1296"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.GruneisenPhononBSPlotter.plot_compare_gs" title="Link to this definition"></a></dt>
<dd><p>Plot two band structure for comparison. One is in red the other in blue.
The two band structures need to be defined on the same symmetry lines!
and the distance between symmetry lines is
the one of the band structure used to build the PhononBSPlotter.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>other_plotter</strong> (<a class="reference internal" href="#pymatgen.phonon.plotter.GruneisenPhononBSPlotter" title="pymatgen.phonon.plotter.GruneisenPhononBSPlotter"><em>GruneisenPhononBSPlotter</em></a>) – another phonon DOS plotter defined along
the same symmetry lines.</p>
</dd>
<dt class="field-even">Raises<span class="colon">:</span></dt>
<dd class="field-even"><p><strong>ValueError</strong> – if the two plotters are incompatible (due to different data lengths)</p>
</dd>
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>with both band structures</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>plt.Axes</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.GruneisenPhononBSPlotter.save_plot_gs">
<span class="sig-name descname"><span class="pre">save_plot_gs</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filename</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">PathLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">img_format</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'eps'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ylim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">plot_ph_bs_with_gruneisen</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L1237-L1257"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.GruneisenPhononBSPlotter.save_plot_gs" title="Link to this definition"></a></dt>
<dd><p>Save matplotlib plot to a file.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>filename</strong> – Filename to write to.</p></li>
<li><p><strong>img_format</strong> – Image format to use. Defaults to EPS.</p></li>
<li><p><strong>ylim</strong> – Specifies the y-axis limits.</p></li>
<li><p><strong>plot_ph_bs_with_gruneisen</strong> – Plot phonon band-structure with bands coloured
as per Gruneisen parameter values on a logarithmic scale</p></li>
<li><p><strong>**kwargs</strong> – kwargs passed to get_plot_gs</p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.GruneisenPhononBSPlotter.show_gs">
<span class="sig-name descname"><span class="pre">show_gs</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ylim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">plot_ph_bs_with_gruneisen</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L1220-L1235"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.GruneisenPhononBSPlotter.show_gs" title="Link to this definition"></a></dt>
<dd><p>Show the plot using matplotlib.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>ylim</strong> – Specifies the y-axis limits.</p></li>
<li><p><strong>plot_ph_bs_with_gruneisen</strong> – Plot phonon band-structure with bands coloured
as per Gruneisen parameter values on a logarithmic scale</p></li>
<li><p><strong>**kwargs</strong> – kwargs passed to get_plot_gs</p></li>
</ul>
</dd>
</dl>
</dd></dl>

</dd></dl>

<dl class="py class">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.GruneisenPlotter">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">GruneisenPlotter</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">gruneisen</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pymatgen.phonon.gruneisen.GruneisenParameter" title="pymatgen.phonon.gruneisen.GruneisenParameter"><span class="pre">GruneisenParameter</span></a></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L999-L1069"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.GruneisenPlotter" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Plot GruneisenParameter.</p>
<p>Plot information from GruneisenParameter.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>gruneisen</strong> (<a class="reference internal" href="#pymatgen.phonon.gruneisen.GruneisenParameter" title="pymatgen.phonon.gruneisen.GruneisenParameter"><em>GruneisenParameter</em></a>) – containing the data to plot.</p>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.GruneisenPlotter.get_plot">
<span class="sig-name descname"><span class="pre">get_plot</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">marker</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'o'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">markersize</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">units</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'thz'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'mev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ha'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm-1'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm^-1'</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'thz'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Axes</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L1010-L1043"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.GruneisenPlotter.get_plot" title="Link to this definition"></a></dt>
<dd><p>Will produce a plot.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>marker</strong> – marker for the depiction</p></li>
<li><p><strong>markersize</strong> – size of the marker</p></li>
<li><p><strong>units</strong> – unit for the plots, accepted units: thz, ev, mev, ha, cm-1, cm^-1.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>matplotlib axes object</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>plt.Axes</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.GruneisenPlotter.save_plot">
<span class="sig-name descname"><span class="pre">save_plot</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filename</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">PathLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">img_format</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'pdf'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">units</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'thz'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'mev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ha'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm-1'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm^-1'</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'thz'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L1054-L1069"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.GruneisenPlotter.save_plot" title="Link to this definition"></a></dt>
<dd><p>Will save the plot to a file.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>filename</strong> – name of the filename</p></li>
<li><p><strong>img_format</strong> – format of the saved plot</p></li>
<li><p><strong>units</strong> – accepted units: thz, ev, mev, ha, cm-1, cm^-1.</p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.GruneisenPlotter.show">
<span class="sig-name descname"><span class="pre">show</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">units</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'thz'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'mev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ha'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm-1'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm^-1'</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'thz'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L1045-L1052"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.GruneisenPlotter.show" title="Link to this definition"></a></dt>
<dd><p>Will show the plot.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>units</strong> – units for the plot, accepted units: thz, ev, mev, ha, cm-1, cm^-1.</p>
</dd>
</dl>
</dd></dl>

</dd></dl>

<dl class="py class">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.PhononBSPlotter">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PhononBSPlotter</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">bs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pymatgen.phonon.bandstructure.PhononBandStructureSymmLine" title="pymatgen.phonon.bandstructure.PhononBandStructureSymmLine"><span class="pre">PhononBandStructureSymmLine</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">label</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L308-L777"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.PhononBSPlotter" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Plot or get data to facilitate the plot of band structure objects.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>bs</strong> – A PhononBandStructureSymmLine object.</p></li>
<li><p><strong>label</strong> – A label for the plot. Defaults to None for no label. Esp. useful with
the plot_compare method to distinguish the band structures.</p></li>
</ul>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.PhononBSPlotter.bs_plot_data">
<span class="sig-name descname"><span class="pre">bs_plot_data</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">Any</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L347-L378"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.PhononBSPlotter.bs_plot_data" title="Link to this definition"></a></dt>
<dd><p>Get the data nicely formatted for a plot.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>ticks: A dict with the ‘distances’ at which there is a qpoint (the
x axis) and the labels (None if no label)
frequencies: A list (one element for each branch) of frequencies for
each qpoint: [branch][qpoint][mode]. The data is
stored by branch to facilitate the plotting
lattice: The reciprocal lattice.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>A dict of the following format</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.PhononBSPlotter.get_plot">
<span class="sig-name descname"><span class="pre">get_plot</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ylim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">units</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'thz'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'mev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ha'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm-1'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm^-1'</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'thz'</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Axes</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L380-L424"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.PhononBSPlotter.get_plot" title="Link to this definition"></a></dt>
<dd><p>Get a matplotlib object for the bandstructure plot.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>ylim</strong> – Specify the y-axis (frequency) limits; by default None let
the code choose.</p></li>
<li><p><strong>units</strong> – units for the frequencies. Accepted values thz, ev, mev, ha, cm-1, cm^-1.
Defaults to “thz”.</p></li>
<li><p><strong>**kwargs</strong> – passed to ax.plot function.</p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.PhononBSPlotter.get_proj_plot">
<span class="sig-name descname"><span class="pre">get_proj_plot</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">site_comb</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'element'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ylim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">None</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">float</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">None</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">float</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">units</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'thz'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'mev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ha'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm-1'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm^-1'</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'thz'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rgb_labels</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">None</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Axes</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L463-L562"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.PhononBSPlotter.get_proj_plot" title="Link to this definition"></a></dt>
<dd><p>Get a matplotlib object for the bandstructure plot projected along atomic
sites.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>site_comb</strong> – a list of list, for example, [[0],[1],[2,3,4]];
the numbers in each sublist represents the indices of atoms;
the atoms in a same sublist will be plotted in a same color;
if not specified, unique elements are automatically grouped.</p></li>
<li><p><strong>ylim</strong> – Specify the y-axis (frequency) limits; by default None let
the code choose.</p></li>
<li><p><strong>units</strong> – units for the frequencies. Accepted values thz, ev, mev, ha, cm-1, cm^-1.
Defaults to “thz”.</p></li>
<li><p><strong>rgb_labels</strong> – a list of rgb colors for the labels; if not specified,
the colors will be automatically generated.</p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.PhononBSPlotter.get_ticks">
<span class="sig-name descname"><span class="pre">get_ticks</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">list</span><span class="p"><span class="pre">]</span></span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L619-L656"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.PhononBSPlotter.get_ticks" title="Link to this definition"></a></dt>
<dd><p>Get all ticks and labels for a band structure plot.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>a list of distance at which ticks should
be set and ‘label’: a list of label for each of those ticks.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>A dict with ‘distance’</p>
</dd>
</dl>
</dd></dl>

<dl class="py property">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.PhononBSPlotter.n_bands">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">n_bands</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">int</span></em><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/plotter.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.PhononBSPlotter.n_bands" title="Link to this definition"></a></dt>
<dd><p>Number of bands.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.PhononBSPlotter.plot_brillouin">
<span class="sig-name descname"><span class="pre">plot_brillouin</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L763-L777"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.PhononBSPlotter.plot_brillouin" title="Link to this definition"></a></dt>
<dd><p>Plot the Brillouin zone.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.PhononBSPlotter.plot_compare">
<span class="sig-name descname"><span class="pre">plot_compare</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">other_plotter</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pymatgen.phonon.plotter.PhononBSPlotter" title="pymatgen.phonon.plotter.PhononBSPlotter"><span class="pre">PhononBSPlotter</span></a><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><a class="reference internal" href="#pymatgen.phonon.plotter.PhononBSPlotter" title="pymatgen.phonon.plotter.PhononBSPlotter"><span class="pre">PhononBSPlotter</span></a><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">units</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'thz'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'mev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ha'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm-1'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm^-1'</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'thz'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">self_label</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'self'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">colors</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Sequence</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">legend_kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">on_incompatible</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'raise'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'warn'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ignore'</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'raise'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">other_kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Axes</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L658-L761"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.PhononBSPlotter.plot_compare" title="Link to this definition"></a></dt>
<dd><p>Plot two band structure for comparison. self in blue, others in red, green, …
The band structures need to be defined on the same symmetry lines!
The distance between symmetry lines is determined by the band structure used to
initialize PhononBSPlotter (self).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>other_plotter</strong> (<a class="reference internal" href="#pymatgen.phonon.plotter.PhononBSPlotter" title="pymatgen.phonon.plotter.PhononBSPlotter"><em>PhononBSPlotter</em></a><em> | </em><em>dict</em><em>[</em><em>str</em><em>, </em><a class="reference internal" href="#pymatgen.phonon.plotter.PhononBSPlotter" title="pymatgen.phonon.plotter.PhononBSPlotter"><em>PhononBSPlotter</em></a><em>]</em>) – Other PhononBSPlotter object(s) defined along
the same symmetry lines</p></li>
<li><p><strong>units</strong> (<em>str</em>) – units for the frequencies. Accepted values thz, ev, mev, ha, cm-1, cm^-1.
Defaults to ‘thz’.</p></li>
<li><p><strong>self_label</strong> (<em>str</em>) – label for the self band structure. Defaults to to the label passed to PhononBSPlotter.init
or, if None, ‘self’.</p></li>
<li><p><strong>colors</strong> (<em>list</em><em>[</em><em>str</em><em>]</em>) – list of colors for the other band structures. Defaults to None for automatic colors.</p></li>
<li><p><strong>legend_kwargs</strong> – dict[str, Any]: kwargs passed to ax.legend().</p></li>
<li><p><strong>on_incompatible</strong> (<em>'raise'</em><em> | </em><em>'warn'</em><em> | </em><em>'ignore'</em>) – What to do if the band structures
are not compatible. Defaults to ‘raise’.</p></li>
<li><p><strong>other_kwargs</strong> – dict[str, Any]: kwargs passed to other_plotter ax.plot().</p></li>
<li><p><strong>**kwargs</strong> – passed to ax.plot().</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>with two band structures.</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>plt.Axes</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.PhononBSPlotter.save_plot">
<span class="sig-name descname"><span class="pre">save_plot</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filename</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">PathLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ylim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">units</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'thz'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'mev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ha'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm-1'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm^-1'</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'thz'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L578-L593"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.PhononBSPlotter.save_plot" title="Link to this definition"></a></dt>
<dd><p>Save matplotlib plot to a file.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>filename</strong> (<em>str</em><em> | </em><em>Path</em>) – Filename to write to.</p></li>
<li><p><strong>ylim</strong> (<em>float</em>) – Specifies the y-axis limits.</p></li>
<li><p><strong>units</strong> (<em>&quot;thz&quot;</em><em> | </em><em>&quot;ev&quot;</em><em> | </em><em>&quot;mev&quot;</em><em> | </em><em>&quot;ha&quot;</em><em> | </em><em>&quot;cm-1&quot;</em><em> | </em><em>&quot;cm^-1&quot;</em>) – units for the frequencies.</p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.PhononBSPlotter.show">
<span class="sig-name descname"><span class="pre">show</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ylim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">units</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'thz'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'mev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ha'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm-1'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm^-1'</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'thz'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L564-L576"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.PhononBSPlotter.show" title="Link to this definition"></a></dt>
<dd><p>Show the plot using matplotlib.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>ylim</strong> (<em>float</em>) – Specifies the y-axis limits.</p></li>
<li><p><strong>units</strong> (<em>&quot;thz&quot;</em><em> | </em><em>&quot;ev&quot;</em><em> | </em><em>&quot;mev&quot;</em><em> | </em><em>&quot;ha&quot;</em><em> | </em><em>&quot;cm-1&quot;</em><em> | </em><em>&quot;cm^-1&quot;</em>) – units for the frequencies.</p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.PhononBSPlotter.show_proj">
<span class="sig-name descname"><span class="pre">show_proj</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">site_comb</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'element'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ylim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">None</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">float</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">None</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">float</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">units</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'thz'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'mev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ha'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm-1'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm^-1'</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'thz'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rgb_labels</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L595-L617"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.PhononBSPlotter.show_proj" title="Link to this definition"></a></dt>
<dd><p>Show the projected plot using matplotlib.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>site_comb</strong> – A list of list of indices of sites to combine. For example,
[[0, 1], [2, 3]] will combine the projections of sites 0 and 1,
and sites 2 and 3. Defaults to “element”, which will combine
sites by element.</p></li>
<li><p><strong>ylim</strong> – Specify the y-axis (frequency) limits; by default None let
the code choose.</p></li>
<li><p><strong>units</strong> – units for the frequencies. Accepted values thz, ev, mev, ha, cm-1, cm^-1.
Defaults to “thz”.</p></li>
<li><p><strong>rgb_labels</strong> – A list of labels for the rgb triangle. Defaults to None,
which will use the element symbols.</p></li>
</ul>
</dd>
</dl>
</dd></dl>

</dd></dl>

<dl class="py class">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.PhononDosPlotter">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">PhononDosPlotter</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">stack</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sigma</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L75-L305"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.PhononDosPlotter" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Plot phonon DOSs. The interface is very flexible to accommodate the many
different ways in which people want to view DOS.
Typical usage is:</p>
<blockquote>
<div><p># Initializes plotter with some optional args. Defaults are usually fine
plotter = PhononDosPlotter().</p>
<p># Add DOS with a label
plotter.add_dos(“Total DOS”, dos)</p>
<p># Alternatively, you can add a dict of DOSes. This is the typical form
# returned by CompletePhononDos.get_element_dos().</p>
</div></blockquote>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>stack</strong> – Whether to plot the DOS as a stacked area graph</p></li>
<li><p><strong>sigma</strong> – A float specifying a standard deviation for Gaussian smearing
the DOS for nicer looking plots. Defaults to None for no smearing.</p></li>
</ul>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.PhononDosPlotter.add_dos">
<span class="sig-name descname"><span class="pre">add_dos</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">label</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dos</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos" title="pymatgen.phonon.dos.PhononDos"><span class="pre">PhononDos</span></a></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Any</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L106-L119"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.PhononDosPlotter.add_dos" title="Link to this definition"></a></dt>
<dd><p>Add a dos for plotting.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>label</strong> (<em>str</em>) – label for the DOS. Must be unique.</p></li>
<li><p><strong>dos</strong> (<a class="reference internal" href="#pymatgen.phonon.dos.PhononDos" title="pymatgen.phonon.dos.PhononDos"><em>PhononDos</em></a>) – DOS object</p></li>
<li><p><strong>**kwargs</strong> – kwargs supported by matplotlib.pyplot.plot</p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.PhononDosPlotter.add_dos_dict">
<span class="sig-name descname"><span class="pre">add_dos_dict</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">dos_dict</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">key_sort_func</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L121-L131"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.PhononDosPlotter.add_dos_dict" title="Link to this definition"></a></dt>
<dd><p>Add a dictionary of doses, with an optional sorting function for the
keys.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>dos_dict</strong> – dict of {label: Dos}</p></li>
<li><p><strong>key_sort_func</strong> – function used to sort the dos_dict keys.</p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.PhononDosPlotter.get_dos_dict">
<span class="sig-name descname"><span class="pre">get_dos_dict</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">dict</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L133-L141"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.PhononDosPlotter.get_dos_dict" title="Link to this definition"></a></dt>
<dd><p>Get the added doses as a json-serializable dict. Note that if you
have specified smearing for the DOS plot, the densities returned will
be the smeared densities, not the original densities.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>DOS data. Generally of the form {label: {‘frequencies’:.., ‘densities’: …}}</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>dict</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.PhononDosPlotter.get_plot">
<span class="sig-name descname"><span class="pre">get_plot</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">xlim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ylim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">invert_axes</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">units</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'thz'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'mev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ha'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm-1'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm^-1'</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'thz'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">legend</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">dict</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ax</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Axes</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Axes</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L143-L260"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.PhononDosPlotter.get_plot" title="Link to this definition"></a></dt>
<dd><p>Get a matplotlib plot showing the DOS.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>xlim</strong> – Specifies the x-axis limits. Set to None for automatic determination.</p></li>
<li><p><strong>ylim</strong> – Specifies the y-axis limits.</p></li>
<li><p><strong>invert_axes</strong> (<em>bool</em>) – Whether to invert the x and y axes. Enables chemist style DOS plotting.
Defaults to False.</p></li>
<li><p><strong>units</strong> (<em>thz</em><em> | </em><em>ev</em><em> | </em><em>mev</em><em> | </em><em>ha</em><em> | </em><em>cm-1</em><em> | </em><em>cm^-1</em>) – units for the frequencies. Defaults to “thz”.</p></li>
<li><p><strong>legend</strong> – dict with legend options. For example, {“loc”: “upper right”}
will place the legend in the upper right corner. Defaults to {“fontsize”: 30}.</p></li>
<li><p><strong>ax</strong> (<em>Axes</em>) – An existing axes object onto which the plot will be added.
If None, a new figure will be created.</p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.PhononDosPlotter.save_plot">
<span class="sig-name descname"><span class="pre">save_plot</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filename</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">PathLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">img_format</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'eps'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xlim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ylim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">invert_axes</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">units</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'thz'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'mev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ha'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm-1'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm^-1'</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'thz'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L262-L285"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.PhononDosPlotter.save_plot" title="Link to this definition"></a></dt>
<dd><p>Save matplotlib plot to a file.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>filename</strong> – Filename to write to.</p></li>
<li><p><strong>img_format</strong> – Image format to use. Defaults to EPS.</p></li>
<li><p><strong>xlim</strong> – Specifies the x-axis limits. Set to None for automatic
determination.</p></li>
<li><p><strong>ylim</strong> – Specifies the y-axis limits.</p></li>
<li><p><strong>invert_axes</strong> – Whether to invert the x and y axes. Enables chemist style DOS plotting.
Defaults to False.</p></li>
<li><p><strong>units</strong> – units for the frequencies. Accepted values thz, ev, mev, ha, cm-1, cm^-1</p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.PhononDosPlotter.show">
<span class="sig-name descname"><span class="pre">show</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">xlim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ylim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">invert_axes</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">bool</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">units</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'thz'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'mev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ha'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm-1'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm^-1'</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'thz'</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L287-L305"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.PhononDosPlotter.show" title="Link to this definition"></a></dt>
<dd><p>Show the plot using matplotlib.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>xlim</strong> – Specifies the x-axis limits. Set to None for automatic
determination.</p></li>
<li><p><strong>ylim</strong> – Specifies the y-axis limits.</p></li>
<li><p><strong>invert_axes</strong> – Whether to invert the x and y axes. Enables chemist style DOS plotting.
Defaults to False.</p></li>
<li><p><strong>units</strong> – units for the frequencies. Accepted values thz, ev, mev, ha, cm-1, cm^-1.</p></li>
</ul>
</dd>
</dl>
</dd></dl>

</dd></dl>

<dl class="py class">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.ThermoPlotter">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ThermoPlotter</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">dos</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pymatgen.phonon.dos.PhononDos" title="pymatgen.phonon.dos.PhononDos"><span class="pre">PhononDos</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">structure</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.structure.Structure" title="pymatgen.core.structure.Structure"><span class="pre">Structure</span></a></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L780-L996"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.ThermoPlotter" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Plotter for thermodynamic properties obtained from phonon DOS.
If the structure corresponding to the DOS, it will be used to extract the formula unit and provide
the plots in units of mol instead of mole-cell.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>dos</strong> – A PhononDos object.</p></li>
<li><p><strong>structure</strong> – A Structure object corresponding to the structure used for the calculation.</p></li>
</ul>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.ThermoPlotter.plot_cv">
<span class="sig-name descname"><span class="pre">plot_cv</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">tmin</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">tmax</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ntemp</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ylim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Figure</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../util/plotting.py#L843-L861"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.ThermoPlotter.plot_cv" title="Link to this definition"></a></dt>
<dd><p>Plots the constant volume specific heat C_v in a temperature range.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>tmin</strong> – minimum temperature</p></li>
<li><p><strong>tmax</strong> – maximum temperature</p></li>
<li><p><strong>ntemp</strong> – number of steps</p></li>
<li><p><strong>ylim</strong> – tuple specifying the y-axis limits.</p></li>
<li><p><strong>kwargs</strong> – kwargs passed to the matplotlib function ‘plot’.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>matplotlib figure</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>plt.figure</p>
</dd>
</dl>
<p>Keyword arguments controlling the display of the figure:</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>kwargs</p></th>
<th class="head"><p>Meaning</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>title</p></td>
<td><p>Title of the plot (Default: None).</p></td>
</tr>
<tr class="row-odd"><td><p>show</p></td>
<td><p>True to show the figure (default: True).</p></td>
</tr>
<tr class="row-even"><td><p>savefig</p></td>
<td><p>“abc.png” or “abc.eps” to save the figure to a file.</p></td>
</tr>
<tr class="row-odd"><td><p>size_kwargs</p></td>
<td><p>Dictionary with options passed to fig.set_size_inches
e.g. size_kwargs=dict(w=3, h=4)</p></td>
</tr>
<tr class="row-even"><td><p>tight_layout</p></td>
<td><p>True to call fig.tight_layout (default: False)</p></td>
</tr>
<tr class="row-odd"><td><p>ax_grid</p></td>
<td><p>True (False) to add (remove) grid from all axes in fig.
Default: None i.e. fig is left unchanged.</p></td>
</tr>
<tr class="row-even"><td><p>ax_annotate</p></td>
<td><p>Add labels to subplots e.g. (a), (b).
Default: False</p></td>
</tr>
<tr class="row-odd"><td><p>fig_close</p></td>
<td><p>Close figure. Default: False.</p></td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.ThermoPlotter.plot_entropy">
<span class="sig-name descname"><span class="pre">plot_entropy</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">tmin</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">tmax</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ntemp</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ylim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Figure</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../util/plotting.py#L863-L881"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.ThermoPlotter.plot_entropy" title="Link to this definition"></a></dt>
<dd><p>Plots the vibrational entrpy in a temperature range.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>tmin</strong> – minimum temperature</p></li>
<li><p><strong>tmax</strong> – maximum temperature</p></li>
<li><p><strong>ntemp</strong> – number of steps</p></li>
<li><p><strong>ylim</strong> – tuple specifying the y-axis limits.</p></li>
<li><p><strong>kwargs</strong> – kwargs passed to the matplotlib function ‘plot’.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>matplotlib figure</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>plt.figure</p>
</dd>
</dl>
<p>Keyword arguments controlling the display of the figure:</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>kwargs</p></th>
<th class="head"><p>Meaning</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>title</p></td>
<td><p>Title of the plot (Default: None).</p></td>
</tr>
<tr class="row-odd"><td><p>show</p></td>
<td><p>True to show the figure (default: True).</p></td>
</tr>
<tr class="row-even"><td><p>savefig</p></td>
<td><p>“abc.png” or “abc.eps” to save the figure to a file.</p></td>
</tr>
<tr class="row-odd"><td><p>size_kwargs</p></td>
<td><p>Dictionary with options passed to fig.set_size_inches
e.g. size_kwargs=dict(w=3, h=4)</p></td>
</tr>
<tr class="row-even"><td><p>tight_layout</p></td>
<td><p>True to call fig.tight_layout (default: False)</p></td>
</tr>
<tr class="row-odd"><td><p>ax_grid</p></td>
<td><p>True (False) to add (remove) grid from all axes in fig.
Default: None i.e. fig is left unchanged.</p></td>
</tr>
<tr class="row-even"><td><p>ax_annotate</p></td>
<td><p>Add labels to subplots e.g. (a), (b).
Default: False</p></td>
</tr>
<tr class="row-odd"><td><p>fig_close</p></td>
<td><p>Close figure. Default: False.</p></td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.ThermoPlotter.plot_helmholtz_free_energy">
<span class="sig-name descname"><span class="pre">plot_helmholtz_free_energy</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">tmin</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">tmax</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ntemp</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ylim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Figure</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../util/plotting.py#L910-L937"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.ThermoPlotter.plot_helmholtz_free_energy" title="Link to this definition"></a></dt>
<dd><p>Plots the vibrational contribution to the Helmoltz free energy in a temperature range.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>tmin</strong> – minimum temperature</p></li>
<li><p><strong>tmax</strong> – maximum temperature</p></li>
<li><p><strong>ntemp</strong> – number of steps</p></li>
<li><p><strong>ylim</strong> – tuple specifying the y-axis limits.</p></li>
<li><p><strong>kwargs</strong> – kwargs passed to the matplotlib function ‘plot’.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>matplotlib figure</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>plt.figure</p>
</dd>
</dl>
<p>Keyword arguments controlling the display of the figure:</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>kwargs</p></th>
<th class="head"><p>Meaning</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>title</p></td>
<td><p>Title of the plot (Default: None).</p></td>
</tr>
<tr class="row-odd"><td><p>show</p></td>
<td><p>True to show the figure (default: True).</p></td>
</tr>
<tr class="row-even"><td><p>savefig</p></td>
<td><p>“abc.png” or “abc.eps” to save the figure to a file.</p></td>
</tr>
<tr class="row-odd"><td><p>size_kwargs</p></td>
<td><p>Dictionary with options passed to fig.set_size_inches
e.g. size_kwargs=dict(w=3, h=4)</p></td>
</tr>
<tr class="row-even"><td><p>tight_layout</p></td>
<td><p>True to call fig.tight_layout (default: False)</p></td>
</tr>
<tr class="row-odd"><td><p>ax_grid</p></td>
<td><p>True (False) to add (remove) grid from all axes in fig.
Default: None i.e. fig is left unchanged.</p></td>
</tr>
<tr class="row-even"><td><p>ax_annotate</p></td>
<td><p>Add labels to subplots e.g. (a), (b).
Default: False</p></td>
</tr>
<tr class="row-odd"><td><p>fig_close</p></td>
<td><p>Close figure. Default: False.</p></td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.ThermoPlotter.plot_internal_energy">
<span class="sig-name descname"><span class="pre">plot_internal_energy</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">tmin</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">tmax</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ntemp</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ylim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Figure</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../util/plotting.py#L883-L908"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.ThermoPlotter.plot_internal_energy" title="Link to this definition"></a></dt>
<dd><p>Plots the vibrational internal energy in a temperature range.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>tmin</strong> – minimum temperature</p></li>
<li><p><strong>tmax</strong> – maximum temperature</p></li>
<li><p><strong>ntemp</strong> – number of steps</p></li>
<li><p><strong>ylim</strong> – tuple specifying the y-axis limits.</p></li>
<li><p><strong>kwargs</strong> – kwargs passed to the matplotlib function ‘plot’.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>matplotlib figure</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>plt.figure</p>
</dd>
</dl>
<p>Keyword arguments controlling the display of the figure:</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>kwargs</p></th>
<th class="head"><p>Meaning</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>title</p></td>
<td><p>Title of the plot (Default: None).</p></td>
</tr>
<tr class="row-odd"><td><p>show</p></td>
<td><p>True to show the figure (default: True).</p></td>
</tr>
<tr class="row-even"><td><p>savefig</p></td>
<td><p>“abc.png” or “abc.eps” to save the figure to a file.</p></td>
</tr>
<tr class="row-odd"><td><p>size_kwargs</p></td>
<td><p>Dictionary with options passed to fig.set_size_inches
e.g. size_kwargs=dict(w=3, h=4)</p></td>
</tr>
<tr class="row-even"><td><p>tight_layout</p></td>
<td><p>True to call fig.tight_layout (default: False)</p></td>
</tr>
<tr class="row-odd"><td><p>ax_grid</p></td>
<td><p>True (False) to add (remove) grid from all axes in fig.
Default: None i.e. fig is left unchanged.</p></td>
</tr>
<tr class="row-even"><td><p>ax_annotate</p></td>
<td><p>Add labels to subplots e.g. (a), (b).
Default: False</p></td>
</tr>
<tr class="row-odd"><td><p>fig_close</p></td>
<td><p>Close figure. Default: False.</p></td>
</tr>
</tbody>
</table>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.ThermoPlotter.plot_thermodynamic_properties">
<span class="sig-name descname"><span class="pre">plot_thermodynamic_properties</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">tmin</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">tmax</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ntemp</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ylim</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Figure</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../util/plotting.py#L939-L996"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.ThermoPlotter.plot_thermodynamic_properties" title="Link to this definition"></a></dt>
<dd><p>Plots all the thermodynamic properties in a temperature range.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>tmin</strong> – minimum temperature</p></li>
<li><p><strong>tmax</strong> – maximum temperature</p></li>
<li><p><strong>ntemp</strong> – number of steps</p></li>
<li><p><strong>ylim</strong> – tuple specifying the y-axis limits.</p></li>
<li><p><strong>kwargs</strong> – kwargs passed to the matplotlib function ‘plot’.</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>matplotlib figure</p>
</dd>
<dt class="field-odd">Return type<span class="colon">:</span></dt>
<dd class="field-odd"><p>plt.figure</p>
</dd>
</dl>
<p>Keyword arguments controlling the display of the figure:</p>
<table class="docutils align-default">
<thead>
<tr class="row-odd"><th class="head"><p>kwargs</p></th>
<th class="head"><p>Meaning</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>title</p></td>
<td><p>Title of the plot (Default: None).</p></td>
</tr>
<tr class="row-odd"><td><p>show</p></td>
<td><p>True to show the figure (default: True).</p></td>
</tr>
<tr class="row-even"><td><p>savefig</p></td>
<td><p>“abc.png” or “abc.eps” to save the figure to a file.</p></td>
</tr>
<tr class="row-odd"><td><p>size_kwargs</p></td>
<td><p>Dictionary with options passed to fig.set_size_inches
e.g. size_kwargs=dict(w=3, h=4)</p></td>
</tr>
<tr class="row-even"><td><p>tight_layout</p></td>
<td><p>True to call fig.tight_layout (default: False)</p></td>
</tr>
<tr class="row-odd"><td><p>ax_grid</p></td>
<td><p>True (False) to add (remove) grid from all axes in fig.
Default: None i.e. fig is left unchanged.</p></td>
</tr>
<tr class="row-even"><td><p>ax_annotate</p></td>
<td><p>Add labels to subplots e.g. (a), (b).
Default: False</p></td>
</tr>
<tr class="row-odd"><td><p>fig_close</p></td>
<td><p>Close figure. Default: False.</p></td>
</tr>
</tbody>
</table>
</dd></dl>

</dd></dl>

<dl class="py function">
<dt class="sig sig-object py" id="pymatgen.phonon.plotter.freq_units">
<span class="sig-name descname"><span class="pre">freq_units</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">units</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="s"><span class="pre">'thz'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'mev'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'ha'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm-1'</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="s"><span class="pre">'cm^-1'</span></span><span class="p"><span class="pre">]</span></span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference internal" href="#pymatgen.phonon.plotter.FreqUnits" title="pymatgen.phonon.plotter.FreqUnits"><span class="pre">FreqUnits</span></a></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/plotter.py#L44-L72"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.plotter.freq_units" title="Link to this definition"></a></dt>
<dd><dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>units</strong> – str, accepted values: thz, ev, mev, ha, cm-1, cm^-1.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>Conversion factor from THz to the required units and the label in the form of a namedtuple.</p>
</dd>
</dl>
</dd></dl>

</section>
<section id="module-pymatgen.phonon.thermal_displacements">
<span id="pymatgen-phonon-thermal-displacements-module"></span><h2>pymatgen.phonon.thermal_displacements module<a class="headerlink" href="#module-pymatgen.phonon.thermal_displacements" title="Link to this heading"></a></h2>
<p>This module provides classes to handle thermal displacement matrices (anisotropic displacement parameters).</p>
<dl class="py class">
<dt class="sig sig-object py" id="pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ThermalDisplacementMatrices</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">thermal_displacement_matrix_cart</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">structure</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.structure.Structure" title="pymatgen.core.structure.Structure"><span class="pre">Structure</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">temperature</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">thermal_displacement_matrix_cif</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/thermal_displacements.py#L39-L571"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">MSONable</span></code></p>
<p>Handle thermal displacement matrices
This class stores thermal displacement matrices in Ucart format.</p>
<p>An earlier implementation based on Matlab can be found here:
<a class="reference external" href="https://github.com/JaGeo/MolecularToolbox">https://github.com/JaGeo/MolecularToolbox</a>
( J. George, A. Wang, V. L. Deringer, R. Wang, R. Dronskowski, U. Englert, CrystEngComm, 2015, 17, 7414-7422.)</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>thermal_displacement_matrix_cart</strong> – 2D numpy array including the thermal_displacement matrix Ucart
1st dimension atom types, then compressed thermal displacement matrix will follow
U11, U22, U33, U23, U13, U12 (xx, yy, zz, yz, xz, xy)
convention similar to “thermal_displacement_matrices.yaml” in phonopy</p></li>
<li><p><strong>structure</strong> – A pymatgen Structure object</p></li>
<li><p><strong>temperature</strong> – temperature at which thermal displacement matrix was determined</p></li>
<li><p><strong>thermal_displacement_matrix_cif</strong> – 2D numpy array including the thermal_displacement matrix Ucif format
1st dimension atom types, then compressed thermal displacement matrix will follow
U11, U22, U33, U23, U13, U12 (xx, yy, zz, yz, xz, xy)
convention similar to “thermal_displacement_matrices.yaml” in phonopy.</p></li>
</ul>
</dd>
</dl>
<dl class="py property">
<dt class="sig sig-object py" id="pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.B">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">B</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">ndarray</span></em><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/thermal_displacements.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.B" title="Link to this definition"></a></dt>
<dd><p>Computation as described in R. W. Grosse-Kunstleve, P. D. Adams, J Appl Cryst 2002, 35, 477-480.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>First dimension are the atoms in the structure.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>np.array</p>
</dd>
</dl>
</dd></dl>

<dl class="py property">
<dt class="sig sig-object py" id="pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.U1U2U3">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">U1U2U3</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">list</span></em><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/thermal_displacements.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.U1U2U3" title="Link to this definition"></a></dt>
<dd><p>Computation as described in R. W. Grosse-Kunstleve, P. D. Adams, J Appl Cryst 2002, 35, 477-480.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>eigenvalues of Ucart. First dimension are the atoms in the structure.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>np.array</p>
</dd>
</dl>
</dd></dl>

<dl class="py property">
<dt class="sig sig-object py" id="pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.Ucif">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">Ucif</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">ndarray</span></em><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/thermal_displacements.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.Ucif" title="Link to this definition"></a></dt>
<dd><p>Computation as described in R. W. Grosse-Kunstleve, P. D. Adams, J Appl Cryst 2002, 35, 477-480.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>Ucif as array. First dimension are the atoms in the structure.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>np.array</p>
</dd>
</dl>
</dd></dl>

<dl class="py property">
<dt class="sig sig-object py" id="pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.Ustar">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">Ustar</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">ndarray</span></em><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/thermal_displacements.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.Ustar" title="Link to this definition"></a></dt>
<dd><p>Computation as described in R. W. Grosse-Kunstleve, P. D. Adams, J Appl Cryst 2002, 35, 477-480.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>Ustar as array. First dimension are the atoms in the structure.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>np.array</p>
</dd>
</dl>
</dd></dl>

<dl class="py property">
<dt class="sig sig-object py" id="pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.beta">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">beta</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">list</span></em><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/thermal_displacements.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.beta" title="Link to this definition"></a></dt>
<dd><p>Computation as described in R. W. Grosse-Kunstleve, P. D. Adams, J Appl Cryst 2002, 35, 477-480.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>First dimension are the atoms in the structure.</p>
</dd>
<dt class="field-even">Return type<span class="colon">:</span></dt>
<dd class="field-even"><p>np.array</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.compute_directionality_quality_criterion">
<span class="sig-name descname"><span class="pre">compute_directionality_quality_criterion</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">other</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices" title="pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices"><span class="pre">ThermalDisplacementMatrices</span></a></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><span class="pre">dict</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">ArrayLike</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/thermal_displacements.py#L246-L308"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.compute_directionality_quality_criterion" title="Link to this definition"></a></dt>
<dd><p>Will compute directionality of prolate displacement ellipsoids as described in
<a class="reference external" href="https://doi.org/10.1039/C9CE00794F">https://doi.org/10.1039/C9CE00794F</a> with the earlier implementation: <a class="reference external" href="https://github.com/damMroz/Angle/">https://github.com/damMroz/Angle/</a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>other</strong> – ThermalDisplacementMatrix</p></li>
<li><p><strong>compared</strong> (<em>please make sure that the order</em><em> of </em><em>the atoms in both objects that are</em>)</p></li>
<li><p><strong>Otherwise</strong> (<em>is the same.</em>)</p></li>
<li><p><strong>results</strong> (<em>this analysis will deliver wrong</em>)</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p><p>will return a list including dicts for each atom that include “vector0”
(largest principal axes of self object),</p>
<blockquote>
<div><dl class="simple">
<dt>”vector1” (largest principal axes of the other object), “angle” between both axes,</dt><dd><p>These vectors can then, for example, be drawn into the structure with VESTA.
Vectors are given in Cartesian coordinates</p>
</dd>
</dl>
</div></blockquote>
</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.from_Ucif">
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_Ucif</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">thermal_displacement_matrix_cif</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">structure</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.structure.Structure" title="pymatgen.core.structure.Structure"><span class="pre">Structure</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">temperature</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Self</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/thermal_displacements.py#L414-L458"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.from_Ucif" title="Link to this definition"></a></dt>
<dd><p>Starting from a numpy array, it will convert Ucif values into Ucart values and initialize the class.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>thermal_displacement_matrix_cif</strong> – np.array,
first dimension are the atoms,
then reduced form of thermal displacement matrix will follow
Order as above: U11, U22, U33, U23, U13, U12</p></li>
<li><p><strong>structure</strong> – Structure object</p></li>
<li><p><strong>temperature</strong> – float
Corresponding temperature</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>ThermalDisplacementMatrices</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.from_cif_P1">
<em class="property"><span class="k"><span class="pre">static</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_cif_P1</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filename</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">list</span><span class="p"><span class="pre">[</span></span><a class="reference internal" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices" title="pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices"><span class="pre">ThermalDisplacementMatrices</span></a><span class="p"><span class="pre">]</span></span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/thermal_displacements.py#L511-L571"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.from_cif_P1" title="Link to this definition"></a></dt>
<dd><p>Reads a CIF with P1 symmetry including positions and ADPs.
Currently, no check of symmetry is performed as CifParser methods cannot be easily reused.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>filename</strong> – Filename of the CIF.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>ThermalDisplacementMatrices</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.from_structure_with_site_properties_Ucif">
<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">from_structure_with_site_properties_Ucif</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">structure</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.structure.Structure" title="pymatgen.core.structure.Structure"><span class="pre">Structure</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">temperature</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span><span class="w"> </span><span class="p"><span class="pre">|</span></span><span class="w"> </span><span class="pre">None</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">Self</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/thermal_displacements.py#L494-L509"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.from_structure_with_site_properties_Ucif" title="Link to this definition"></a></dt>
<dd><p>Will create this object with the help of a structure with site properties.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>structure</strong> – Structure object including U11_cif, U22_cif, U33_cif, U23_cif, U13_cif, U12_cif as site</p></li>
<li><p><strong>properties</strong></p></li>
<li><p><strong>temperature</strong> – temperature for Ucif data</p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>ThermalDisplacementMatrices</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.get_full_matrix">
<em class="property"><span class="k"><span class="pre">static</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_full_matrix</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">thermal_displacement</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">np.ndarray</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/thermal_displacements.py#L86-L111"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.get_full_matrix" title="Link to this definition"></a></dt>
<dd><p>Transfers the reduced matrix to the full matrix (order of reduced matrix U11, U22, U33, U23, U13, U12).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>thermal_displacement</strong> – 2d numpy array, first dimension are the atoms</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>3d numpy array including thermal displacements, first dimensions are the atoms</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.get_reduced_matrix">
<em class="property"><span class="k"><span class="pre">static</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">get_reduced_matrix</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">thermal_displacement</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ArrayLike</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">np.ndarray</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/thermal_displacements.py#L113-L135"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.get_reduced_matrix" title="Link to this definition"></a></dt>
<dd><p>Transfers the full matrix to reduced matrix (order of reduced matrix U11, U22, U33, U23, U13, U12).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>thermal_displacement</strong> – 2d numpy array, first dimension are the atoms</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>3d numpy array including thermal displacements, first dimensions are the atoms</p>
</dd>
</dl>
</dd></dl>

<dl class="py property">
<dt class="sig sig-object py" id="pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.ratio_prolate">
<em class="property"><span class="k"><span class="pre">property</span></span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">ratio_prolate</span></span><em class="property"><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="pre">ndarray</span></em><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/phonon/thermal_displacements.py"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.ratio_prolate" title="Link to this definition"></a></dt>
<dd><p>This will compute ratio between largest and smallest eigenvalue of Ucart.</p>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.to_structure_with_site_properties_Ucif">
<span class="sig-name descname"><span class="pre">to_structure_with_site_properties_Ucif</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><a class="reference internal" href="pymatgen.core.html#pymatgen.core.structure.Structure" title="pymatgen.core.structure.Structure"><span class="pre">Structure</span></a></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/thermal_displacements.py#L460-L492"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.to_structure_with_site_properties_Ucif" title="Link to this definition"></a></dt>
<dd><p>Transfers this object into a structure with site properties (Ucif).
This is useful for sorting the atoms in the structure including site properties.
e.g. with code like this:
def sort_order(site):</p>
<blockquote>
<div><p>return [site.specie.X, site.frac_coords[0], site.frac_coords[1], site.frac_coords[2]]</p>
</div></blockquote>
<p>new_structure0 = Structure.from_sites(sorted(structure0, key=sort_order)).</p>
<dl class="field-list simple">
<dt class="field-odd">Returns<span class="colon">:</span></dt>
<dd class="field-odd"><p>Structure</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.visualize_directionality_quality_criterion">
<span class="sig-name descname"><span class="pre">visualize_directionality_quality_criterion</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">other</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><a class="reference internal" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices" title="pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices"><span class="pre">ThermalDisplacementMatrices</span></a></span></em>, <em class="sig-param"><span class="n"><span class="pre">filename</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">PathLike</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">'visualization.vesta'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">which_structure</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">Literal</span><span class="p"><span class="pre">[</span></span><span class="m"><span class="pre">0</span></span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="m"><span class="pre">1</span></span><span class="p"><span class="pre">]</span></span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/thermal_displacements.py#L310-L407"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.visualize_directionality_quality_criterion" title="Link to this definition"></a></dt>
<dd><p>Will create a VESTA file for visualization of the directionality criterion.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>other</strong> – ThermalDisplacementMatrices</p></li>
<li><p><strong>filename</strong> – Filename of the VESTA file</p></li>
<li><p><strong>which_structure</strong> – 0 means structure of the self object will be used,
1 means structure of the other object will be used</p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt class="sig sig-object py" id="pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.write_cif">
<span class="sig-name descname"><span class="pre">write_cif</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">filename</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">None</span></span></span><a class="reference external" href="https://github.com/materialsproject/pymatgen/blob/v2025.6.14/src/pymatgen/core/../phonon/thermal_displacements.py#L211-L236"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#pymatgen.phonon.thermal_displacements.ThermalDisplacementMatrices.write_cif" title="Link to this definition"></a></dt>
<dd><p>Write a CIF including thermal displacements.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>filename</strong> – name of the CIF file</p>
</dd>
</dl>
</dd></dl>

</dd></dl>

</section>
</section>


           </div>
          </div>
          <footer>

  <hr/>

  <div role="contentinfo">
    <p>&#169; Copyright 2011, Pymatgen Development Team.</p>
  </div>

  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
    provided by <a href="https://readthedocs.org">Read the Docs</a>.
   

</footer>
        </div>
      </div>
    </section>
  </div>
  <script>
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script> 

</body>
</html>
